Исключение "NOT_SUPPORTED_BY_GUI" в JCo - PullRequest
1 голос
/ 13 апреля 2010

У нас есть BAPI, который загружает указанный документ в SAP.

BAPI принимает три параметра: ID, FILE_LOC и FOLDER_NAME. И я устанавливаю значения следующим образом в коде JCo:

JCO.ParameterList paramList = function.getImportParameterList();
paramList.setValue("101XS1", "EXTERNAL_ID");
paramList.setValue("tmp", "FOLDER_NAME");
paramList.setValue("D:/upload/foo.txt", "FILE_LOCATION");

Но когда я пытаюсь выполнить BAPI, я получаю следующее исключение:

com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Exception condition "NOT_SUPPORTED_BY_GUI" raised.
    at com.sap.mw.jco.rfc.MiddlewareRFC$Client.nativeExecute(Native Method)
    at com.sap.mw.jco.rfc.MiddlewareRFC$Client.execute(MiddlewareRFC.java:1242)
    at com.sap.mw.jco.JCO$Client.execute(JCO.java:3816)
    at com.sap.mw.jco.JCO$Client.execute(JCO.java:3261)

Тот же BAPI работает нормально, если я выполняю через толстый клиент (SAP Logon). Но через JCo он дает эту ошибку.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

Эта ошибка сама по себе не говорит вам больше, чем «программа ABAP (функциональный модуль) вызвала исключение с именем NOT_SUPPORTED_BY_GUI». На самом деле это означает, что, вероятно, функциональный модуль пытался получить доступ к некоторой функции, связанной с графическим интерфейсом, что недопустимо для BAPI, поэтому либо это пользовательский функциональный модуль RFC, либо вы обнаружили ошибку программирования в стандартном кодировании SAP и должны откройте заявку в службу поддержки SAPnet.

1 голос
/ 20 апреля 2010

Вы не можете использовать сервисы GUI в не-графических операциях, таких как RFC или фоновые задания. Вообще избегайте использования класса cl_gui_frontend_services и функций GUI_ *. В качестве альтернативы используйте функцию OPEN_DATASET FOR INPUT / OUTPUT в вашей функции с поддержкой RFC.

Привет

...