执行提交

2020-08-27 15:33发布

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

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


嗨,

您能告诉我一个带有变量的"提交时执行"的例子吗?

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

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


嗨,

您能告诉我一个带有变量的"提交时执行"的例子吗?

付费偷看设置
发送
10条回答
N-Moskvin
1楼-- · 2020-08-27 15:58

嗨,

PERFORM 对话框模块中不执行ON COMMIT例程。

您必须确保使用ON COMMIT调用的任何子例程都可以延迟到调用程序中的下一个COMMIT WORK之前。请记住,对话框模块的全局数据 当控制权返回到调用程序时,它与内部会话一起被破坏,因此,使用PERFORM ON COMMIT调用的子例程一定不能使用此全局数据。

PERFORM ON COMMIT语句在对话框工作过程中调用子例程 但是,直到系统到达下一个COMMIT WORK语句时才执行它,在这里,ABAP语句COMMIT WORK也定义了SAP LUW的末尾,因为在子例程中用PERFORM ON COMMIT调用的所有语句都会改变数据库 在相应对话框步骤的

数据库LUW中执行。

此捆绑技术对调用功能的优势 ... IN UPDATE TASK具有更好的性能,因为不必将更新数据写入额外的表中。 但是,缺点是您不能在PERFORM ... ON COMMIT语句中传递参数。 使用全局变量和ABAP内存传递数据。 使用此方法传递数据时,存在数据不一致的巨大危险。 在提交时执行SUBROUT。

如果选择此方法,则子例程在提交时执行。 因此,在提交处理期间还将记录在更新任务中运行功能的请求。 结果,随请求记录的参数值是提交时的当前值。

Ex。

a = 1。

PERFORM F

a = 2。

在提交时执行F。

a = 3。

提交工作。

FORM f。

在更新任务导出中调用函数'UPD_FM'PAR = A。

ENDFORM。

在此示例中,功能模块 使用PD中的值3执行UPD_FM。 尽管有两个PERFORM ON COMMIT语句,更新任务仅执行一次功能模块。 这是因为以相同的参数值记录的给定功能模块在更新任务中永远不能执行一次以上。 子例程本身包含功能模块调用,可能没有参数。

注意,

Bhaskar

粗暴的香蕉
2楼-- · 2020-08-27 16:08

我可以放吗? :

使用var1 var2在提交时执行update_db。

悻福寶寶
3楼-- · 2020-08-27 16:04

不允许这样做。

xfwsx85
4楼-- · 2020-08-27 15:58

错误:电子邮件状态为 队列中仍然没有条目

我在更新执行例程之前使用发送邮件执行例程解决了这个问题。

在数据库更新" PERFORM update_data"之后发送邮件" PERFORM send_email"时,我遇到了同样的问题。

我做了两件事。

a。 send_mail之后的提交的使用

b。 在数据库更新之前发送邮件。

这解决了我的问题。我附上了屏幕截图。 希望对您有所帮助。

谢谢

JP

一周热门 更多>