SAPJco вызывает BAPI_MATERIAL_DISPLAY - PullRequest
0 голосов
/ 29 октября 2018

Я пытался вызвать функциональный модуль BAPI_MATERIAL_DISPLAY из SAP JCO. Вот так я передаю свой входной параметр.

function.getImportParameterList (). SetValue ("МАТЕРИАЛ", "10");

Из вывода моей программы я получил

Материал 10 не существует или не активирован.

Если я выполню BAPI_MATERIAL_DISPLAY с использованием входа в систему SAP, я получаю запись. Используя отладчик, я обнаружил, что

Мой ввод идет как 00000000000010. И так, возвращая ответ.

Не знаю, как правильно справиться с этим в SAPJCO.

Я непосредственно передал значение 00000000000010 из SAPJCo, и на этот раз я получил ошибку, com.sap.conn.jco.JCoException: (104) JCO_ERROR_SYSTEM_FAILURE: вывод на экран без подключения к пользователю.

Надеюсь, SAP открывает всплывающее окно. Дайте мне знать, как решить обе проблемы в SAPJCO

1 Ответ

0 голосов
/ 30 октября 2018

Полевой материал имеет подпрограмму выхода из конверсии. Смотрите также его домен MATNR в DDIC. Эти выходы преобразования всегда вызываются автоматически SE37, но не тогда, когда удаленный функциональный модуль вызывается напрямую - как здесь извне из программы JCo.

Так что, если BAPI ожидает получить определенные параметры в своем внутреннем формате представления SAP (я не знаю, так ли это здесь), то вам нужно заранее выполнить это преобразование данных самостоятельно, либо просто в собственной подпрограмме на стороне Java или путем вызова соответствующих подпрограмм преобразования на стороне ABAP через RFC.

Для получения более подробной информации об этом я рекомендую изучить SAP-ноту 206068 .

Относительно вашего второго вопроса с сообщением об ошибке «Вывод экрана без подключения к пользователю», я предполагаю, что этот BAPI ожидает подключения к графическому интерфейсу SAP для отображения выбранных данных. При удаленном вызове функции у вас нет соединения с SAP GUI по умолчанию, но вы можете подключить SAP GUI к вашему RFC-соединению с JCo, а именно, указав дополнительный параметр входа jco.client.use_sapgui=1. Чтобы это работало, на вашем хосте, на котором работает JCo, конечно же, должен быть установлен веб-интерфейс SAP GUI (для Windows или для Java).

...