2010-04-13 2 views
1

У нас есть BAPI, который загружает указанный документ в SAP.«NOT_SUPPORTED_BY_GUI» Исключение в JCo

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 это дает эту ошибку.

+0

является то, что конкретный BAPI, или стандартный? может ли быть, что bapi использует GUI-специфический функциональный модуль/класс, например L_GUI_FRONTEND_SERVICES? –

ответ

2

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

1

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

С уважением