【问题标题】:"NOT_SUPPORTED_BY_GUI" Exception in JCoJCo 中的“NOT_SUPPORTED_BY_GUI”异常
【发布时间】:2010-04-13 06:50:46
【问题描述】:

我们有一个将指定文档上传到 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 登录)执行,相同的 BAPI 工作正常。但是通过 JCo,它给出了这个错误。

【问题讨论】:

  • 这是一个特定的 BAPI,还是一个标准的?会不会是 bapi 使用了特定于 gui 的功能模块/类,例如 L_GUI_FRONTEND_SERVICES ?

标签: java sap bapi jco


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2021-09-16
      相关资源
      最近更新 更多