1

我们有一个将指定文档上传到 SAP 的 BAPI。

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)

如果我通过胖客户端(SAP Logon)执行,相同的 BAPI 工作正常。但是通过JCo,它给出了这个错误。

4

2 回答 2

2

此错误本身并没有告诉您更多信息,只是“ABAP 程序(功能模块)引发了名为 NOT_SUPPORTED_BY_GUI 的异常”。这真正的意思可能是功能模块试图访问一些与 GUI 相关的功能——这对 BAPI 来说是非法的,所以要么这是一个定制的 RFC 功能模块,要么你在 SAP 标准编码中发现了一个编程错误,应该打开 SAPnet 支持票证。

于 2010-04-13T17:57:58.267 回答
1

您不能在非 GUI 操作中使用 GUI 服务,如 RFC 或后台 JOB。通常避免使用类 cl_gui_frontend_services 和函数 GUI_*。或者,在启用 RFC 的函数中使用 OPEN_DATASET FOR INPUT/OUTPUT 指令。

问候

于 2010-04-20T10:56:54.943 回答