SAPJco调用BAPI_MATERIAL_DISPLAY

时间:2018-10-29 16:14:44

标签: sap sapjco3

我试图从SAP JCO调用BAPI_MATERIAL_DISPLAY功能模块,这就是我传递输入参数的方式。

function.getImportParameterList()。setValue(“ MATERIAL”,“ 10”);

从程序输出中我得到

材料10不存在或未激活。

如果我使用SAP登录执行BAPI_MATERIAL_DISPLAY,IAM将获得该条目。使用调试器,我发现了

我的输入为00000000000010。因此返回响应。

Dunno,如何在SAPJCO中正确处理此问题。

我直接从SAPJCo传递了值00000000000010,这一次我出错了,  com.sap.conn.jco.JCoException:(104)JCO_ERROR_SYSTEM_FAILURE:屏幕输出未连接到用户。

希望SAP正在打开一个弹出窗口。让我知道如何解决SAPJCO中的两个问题

1 个答案:

答案 0 :(得分:0)

字段材料具有转换退出例程。另请参见DDIC中其域MATNR。 这些转换出口始终由SE37自动调用,但是当直接调用远程功能模块时(例如从JCo程序的外部),则不会自动调用。

因此,如果BAPI希望以其SAP内部表示形式获取某些参数(我不知道是否是这种情况),那么您必须事先自行进行此数据转换,方法是纯粹执行此操作在Java端自己的例程中,或者通过RFC在ABAP端调用适当的转换例程。

有关此的更多详细信息,我建议学习SAP注释206068

关于第二个错误消息“没有连接用户的屏幕输出”,我想这个BAPI希望与SAP GUI建立连接以显示所选数据。通过远程函数调用,默认情况下您没有SAP GUI连接,但是您可以通过JCo将SAP GUI连接到RFC连接,即通过指定附加登录参数jco.client.use_sapgui=1。为此,当然还需要在运行JCo的主机上安装SAP GUI前端(用于Windows或Java)。