JCo中的BAPI事务提交

2020-08-16 21:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用BAPI_ACC_DOCUMENT_POST通过JCo(Java程序)将GL文档发布到SAP中,然后调用BAPI_TRANSACTION_COMMIT提交事务,以便在SAP系统中对其进行更新。

我执行程序后,我收到了投递成功的消息,并且文件编号返回给我。 但是,当我在SAP系统中查找此文档时,找不到它。

任何帮助将不胜感激。

下面是一段代码,其中我在映射所需的数据后在Java中执行了BAPI。

function.execute(destination);

System.out.println("函数BAPI_ACC_DOCUMENT_POST已执行。");

commFunct.getImportParameterList()。setValue(" WAIT"," 10");

commFunct.execute(目的地);

System.out.println("执行函数BAPI_TRANSACTION_COMMIT。");

此致

Ganesh。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用BAPI_ACC_DOCUMENT_POST通过JCo(Java程序)将GL文档发布到SAP中,然后调用BAPI_TRANSACTION_COMMIT提交事务,以便在SAP系统中对其进行更新。

我执行程序后,我收到了投递成功的消息,并且文件编号返回给我。 但是,当我在SAP系统中查找此文档时,找不到它。

任何帮助将不胜感激。

下面是一段代码,其中我在映射所需的数据后在Java中执行了BAPI。

function.execute(destination);

System.out.println("函数BAPI_ACC_DOCUMENT_POST已执行。");

commFunct.getImportParameterList()。setValue(" WAIT"," 10");

commFunct.execute(目的地);

System.out.println("执行函数BAPI_TRANSACTION_COMMIT。");

此致

Ganesh。

付费偷看设置
发送
5条回答
Climb_Ma
1楼-- · 2020-08-16 22:06

你好Ganesh,

默认情况下,使用JCo3时,连接不再是有状态的,因此每个RFC调用均在其自己的上下文中执行。 但是,就您的情况而言,您希望提交在发布文档的同一上下文中进行。 您可以通过添加以下静态方法调用来做到这一点:

 JCoContext.begin(destination);
//在这里执行两个RFC函数
 JCoContext.end(destination);
 

您还可以查看JCoContext的Java API帮助,其中对此进行了更详细的说明。 添加两行后(最好在 finally 块中结束上下文),您应该在SAP中看到该文档。

干杯,哈拉尔德

哎,真难
2楼-- · 2020-08-16 21:58

感谢哈拉尔德,

这是使我的代码正常工作的关键。

3楼-- · 2020-08-16 21:57

嗨,Ganesh_sn,

在调用commit BAPI时不要使用WAIT参数。

浮生未央
4楼-- · 2020-08-16 22:12

您好,Erhan,

感谢您的快速回复。 实际上,我最初没有给出WAIT参数就尝试过,之后我尝试给出WAIT

在两种情况下,java程序都会成功运行,并以未在SAP系统中发布的返回消息的形式返回文档编号。 可能是什么问题?。

此致

Ganesh。

Tong__Ming
5楼-- · 2020-08-16 22:06

嗨,

使用语句commFunct.getImportParameterList()。setValue(" WAIT"," 10"); 在COMMENT语句之后。

一周热门 更多>