UniData Список всех доступных подпрограмм / Все параметры

Я пытаюсь обернуть некоторые подпрограммы UniData в веб-службу SOAP. Я планирую использовать библиотеку C# и UODOTNET (интерфейс управления данными IBM U2 для .NET). Также я хочу создать механизм для чтения всех доступных подпрограмм с сервера данных, а также для чтения всех необходимых параметров и динамической генерации необходимых кодов для веб-службы.

Мой код будет примерно таким:

var session = UniObjects.OpenSession(
        "192.168.0.1",
        "user",
        "password",
        "account"
        );

var cmd = session.CreateUniCommand();
cmd.Command = "LIST SUBURB.INDEX"; // ?????
cmd.Execute();
var res = cmd.Response;

Вопрос 1: Есть ли какая-нибудь команда, которую я могу использовать для получения списка всех доступных подпрограмм?

Вопрос 2: Есть ли какая-нибудь команда, которую я могу использовать для получения списка всех параметров для конкретной подпрограммы?

Ваше здоровье


person Barsham    schedule 30.05.2016    source источник


Ответы (2)


Короткий ответ — нет.

Более длинный ответ - да, но с большой работой.

Поскольку вы задаете этот вопрос, я предполагаю, что вам не хватает общих знаний о платформе. Следовательно, чтобы иметь возможность сделать это, вам необходимо:

  • Узнайте, как работает VOC, в частности, как можно каталогизировать исполняемый код здесь.
  • Узнайте о КАТАЛОГЕ и о том, чем отличаются программы каталогизации глобально, локально и напрямую.
  • Поймите, как конкретно устроена ваша система. В некоторых местах все напрямую каталогизировано в VOC, в других есть смесь. Если первое, то будет легче для вашего вопроса.

Как только вы поймете вышеизложенное, вы узнаете, как получить список всех исполняемых программ из VOC, локального каталога и глобального каталога. Например, упрощенным примером для VOC является команда UniQuery LIST VOC WITH F1="C".

Сложность заключается в получении списка параметров, в котором нет ни одной системной команды. Для этого у вас есть 2 варианта.

  1. Выполните обратный инжиниринг байт-кода каждой подпрограммы и определите количество параметров.
  2. Если у вас есть доступ к соответствующему исходному коду, проанализируйте его, чтобы создать список.
person Dan McGrath    schedule 31.05.2016
comment
Это отличный ответ. Кажется, что это должно быть легко, но со всеми вариантами каталогизации программ это быстро становится не так просто. - person JeffK; 31.05.2016
comment
Спасибо @JeffK. Я также пропустил вариант RUN <dir> <prog>, который может оживить ситуацию, если вы пытаетесь написать универсальное решение для кросс-установки. - person Dan McGrath; 31.05.2016

Просто хотел добавить комментарий к этому, в UniData есть команда MAKE.MAP.FILE, которая идентифицирует программы и подпрограммы (и количество параметров), которые помещают информацию в файл «_MAP_». Это не говорит вам, для чего используются параметры, но помогает.

person Mike    schedule 03.11.2016