DB_COMMIT和COMMIT WORK的行为有什么区别?

2020-09-01 08:56发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好大师, 我想知道FM DB...

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

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


你好大师,

我想知道FM DB_COMMIT和ABAP语句COMMIT WORK之间有什么区别。 功能模块DB_COMMIT将提交所有数据库更改(但是COMMIT WORK也将执行相同的操作),那么编写DB_COMMIT的意义何在? 我读到DB_COMMIT将结束DB LUW,而COMMIT WORK将结束SAP LUW,但是有没有实际的例子可以证明两者之间的区别?

2条回答
clasier
2020-09-01 09:04 .采纳回答

你好高级banerjee

您在上面提到的两项承诺 只是类型为Database Commits,让我进一步解释以更好地理解!

什么是数据库提交?

这些是系统用来关闭所有打开的游标的命令/控件。 应用在桌子上。

换句话说,在直接/间接处理表的程序执行过程中,系统将预先锁定表,直到在相关表上完成其操作为止。 这些提交语句有助于释放任何其他工作流程的表。

这是两种类型:

1)隐式提交

2)显式提交


隐式提交:

这些将创建自己的工作流程来启动和LUW,这意味着它将不会干扰其他 工作流程,直到完成为止,一旦有空闲的工作流程,它将开始使用可用的工作流程启动其LUW。 顾名思义,该调用是隐式的,并在以下实例中实时触发:

->在任何事务中完成用户交互之后。

->之后

->使用外部框架时。

简而言之,此隐式提交将适用于所有打开的数据库连接

显式提交

这些是我们最常用的提交。 顾名思义,在程序中显式编码的Commit语句称为显式Commit。

即使在程序中显式调用FM DB_COMMIT也是显式Commit。 我们将使用它开发的许多对象。

正如您所提到的,该Commit关闭正在运行的打开的LUW。

总结一下:

- ->隐式提交(DB Commit)仅关闭数据库连接,但除了DB连接之外,显式提交也将关闭正在运行的LUW。

->隐式提交(DB提交)等待释放工作进程以启动其自己的LUW来关闭数据库连接,但显式提交将关闭数据库连接以及相应的LUW 循环并完成LUW所需的操作。

->这就是我们明确调用COMMIT WORK语句的确切原因,因为我们想在下一步操作中进一步快速发展,而 可以等待系统关闭数据库连接。

希望您现在有了更好的主意!

问候!

一周热门 更多>