Отражение параметров FM в JCo

У меня проблема с динамическим получением списка параметров и их значений при вызове функционального модуля в SAP (с параметром DESTINATION как SAP JCO SERVER) и последующей его обработке с помощью Java (в SAP JCO Server).

Дело в том, что мне нужен динамический способ получения информации на сервере JCO (с использованием Java) о том, какая функция SAP и с какими параметрами (импорт, экспорт, изменение и таблицы) была вызвана в SAP (поскольку мой сервер JCO Server "слушает" Вызовы SAP RFC, и я должен хранить информацию об этих вызовах из SAP).

Я знаю это (например, для импорта параметров) с помощью команды:

JCoParameterList ParameterList = function.getImportParameterList(); 

в Java я могу получить эти данные, но как быть с этой переменной типа JCoParameterList? Т.е. как я могу получить информацию из этой переменной "ParameterList" об имени параметров, их типах и значениях, с которыми они были вызваны в SAP?

Буду благодарен за любые предложения о том, как в Java мы можем получить эти данные из объекта типа JCoParameterList!

С уважением, Андрей


person Andrew    schedule 22.05.2020    source источник


Ответы (1)


JCoParameterList содержит список JCoParameterField экземпляров. JCoParameterField, в свою очередь, наследуется от JCoField, который дает вам методы для установки или получения значения параметра. JCoParameterList позволяет выполнять итерацию по списку параметров, проверять, что это за параметры, получать их значения и т. Д.

JCoParameterList parameters = function.getImportParameterList();
JCoParameterFieldIterator it = parameters.getParameterFieldIterator();
while (it.hasNextField()) {
    JCoParameterField field = it.nextParameterField();
    // field.getName() gives you the name
    // field.getString() gives you the parameter value as string
    // field.getExtendedFieldMetaData() gives you the field metadata

}
person Dirk Trilsbeek    schedule 22.05.2020