BAPI _TRANSACTION_COMMIT并回滚

2020-09-02 06:54发布

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

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


嗨,

按照我建立的逻辑,我必须循环执行,并为每个项目

1。 使用BAPI_GOODSMOVEMENT_CREATE的发货(GI),如果成功,则提交。

2。 如果创建了GI,则为GI创建转移要求(TR)。 如果成功,则提交。 (问题)

3。 如果创建了TR,则为TR创建转储单。 如果有错误(问题)。

问题:如果在创建TR时出错,我将不得不撤消创建另一个MIGO文档的Goods运动。 因此,如果我使用BAPI_TRANSACTION_ROLLBACK,是否会将所有先前创建/提交的GI/TR/TO反转,因为所有这些都在同一个LUW中?

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

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


嗨,

按照我建立的逻辑,我必须循环执行,并为每个项目

1。 使用BAPI_GOODSMOVEMENT_CREATE的发货(GI),如果成功,则提交。

2。 如果创建了GI,则为GI创建转移要求(TR)。 如果成功,则提交。 (问题)

3。 如果创建了TR,则为TR创建转储单。 如果有错误(问题)。

问题:如果在创建TR时出错,我将不得不撤消创建另一个MIGO文档的Goods运动。 因此,如果我使用BAPI_TRANSACTION_ROLLBACK,是否会将所有先前创建/提交的GI/TR/TO反转,因为所有这些都在同一个LUW中?

付费偷看设置
发送
3条回答
灬番茄
1楼 · 2020-09-02 07:51.采纳回答

嗨,

否,BAPI_TRANSACTION_ROLLBACK不会撤销以前的提交。

您应该在前两个步骤中使用BAPI来了解是否有任何错误。 基于此,在第三步结束时调用BAPI_TRANSACTION_COMMIT。 然后,所有3个步骤都将放在一个LUW中,这就是应该完成的方式。

注意

GK

Alawn_Xu
2楼-- · 2020-09-02 07:37

嗨,Srujana Reddy

通过过滤返回bapi内部表中的错误来检查BAPI_GOODSMOVEMENT_CREATE之后的错误。 不要提交结果。

关于

Abinath

jovirus
3楼-- · 2020-09-02 07:46

逻辑很简单:

全部 提交的事务无法回滚。 在您的情况下,您试图回滚已经提交的事务,而这是不可能的并且也要纠正。

可能您可以按如下所示更改逻辑:

1)不要提交 任何事务,直到您的完整周期成功完成为止。

2)如果周期的任何步骤失败,那么您可以回滚(不预先提交任何事务),这可能对您有利 场景。

问候,

一周热门 更多>