【发布时间】:2022-01-04 09:07:25
【问题描述】:
我正在尝试在主程序仍在运行而不提交的情况下在数据库表中提交 DML 更新,因为将来可能会出现错误并且可能需要回滚它,但内部(已保存)更新应该保留. 就像在 Oracle 自治事务中一样。
Call function ... starting new task ... 或 Submit ... and return 不起作用,因为它们会影响主事务。
有没有办法在不中断主 LUW 的情况下启动嵌套数据库 LUW 并提交它?
【问题讨论】:
-
是否可以将“嵌套更新”移动到“主更新”前面,例如
prepare( ). COMMIT WORK. main( )?嵌套两个事务还意味着您会看到两种不同的数据库状态,具体取决于您所在的事务。 -
你说“[aRFC] 或 Submit [...] 不起作用,因为它们会影响主事务”,我不同意,只有
Submit在同一个数据库 LUW 中运行, aRFC 在其自己的数据库 LUW 中运行。如果您想继续讨论 aRFC,请澄清。请注意,ABAP SQL 允许本地“服务连接”,以便在同一个 ABAP LUW 中启动不同的数据库 LUW(所有 ABAP SQL 语句中的CONNECTION字,连接以名称R/3*开头)。