Я установил соединение с сервером SAP и хочу распечатать список BAPI в моей программе Java. Я использую sapjco3.jar.
Есть ли способ сделать это?
Я установил соединение с сервером SAP и хочу распечатать список BAPI в моей программе Java. Я использую sapjco3.jar.
Есть ли способ сделать это?
Насколько я знаю, "BAPI для получения списка BAPI" не существует, так что это будет нетривиальная задача. Вы можете попытаться использовать RFC_FUNCTION_SEARCH
для поиска функциональных модулей с именем BAPI*
, но это не гарантирует, что вы получите а) только официальные BAPI и б) все официальные BAPI...
Вы также можете использовать функциональный модуль SWO_QUERY_API_METHODS
. Следующий фрагмент кода работает с JCo 2:
IFunctionTemplate functionTemplate = Repository.getFunctionTemplate("SWO_QUERY_API_METHODS");
JCO.Function function = functionTemplate.getFunction();
mConnection.execute(function);
ParameterList exportParameter = function.getExportParameterList();
System.out.println("exportParameter: " + exportParameter);
ParameterList importParameter = function.getImportParameterList();
System.out.println("importParameter: " + importParameter);
ParameterList tableParameter = function.getTableParameterList();
System.out.println("tableParameter: " + tableParameter);
SWO_QUERY_API_METHODS
не является BAPI, это просто функциональный модуль с поддержкой RFC, выпущенный для внутреннего использования. Он может измениться или исчезнуть без предупреждения клиентов. В остальном это звучит как отличная альтернатива.
- person vwegert; 28.08.2013
Вы можете использовать BAPI_MONITOR_GETLIST, чтобы получить список всех BAPI в вашей системе вместе с метаданными.
Вы можете создать функцию ABAP для поиска всех функций RFC в таблице TFDIR с FMODE = 'R' (удаленный). Однако это даст вам все функции удаленного вызова, а не только BAPI.