0

是否可以仅对选定的表执行提交?

我遇到的问题是我不知道该进程是否更新了更多表,因此我想防止用我的提交来更新它们!

它是大规模处理,并且在流程结束时它将调用提交(逻辑上)。

那么有没有办法更新一个特殊的表而不是全部?

案例:大规模处理运行,就像我工作的那样,在其最后进行了更新。

我们/我的代码只是一个具有多个功能的 BAdI 实现。要获取特定数据需要向另一个系统发出请求,该请求不能在历史日志中留下任何足迹,因此必须回滚请求,以免将其持久化到系统中。

此请求用于工作项条目。因此,如果我处理 1 个数据集并生成一个工作项,则该工作项将被注册以在运行后抛出。在处理 2º 数量的数据集并向其他系统发出请求时,我必须回滚它,但第一数量的数据集的工作项条目将被删除(回滚)。

是否可以通过直接提交进行这些更新?-> 没有。

我不能简单地管理表以使用内部表进行更新并在运行结束时更新它们吗?-> 不,因为那些课程不属于我们。

为什么我不简单地在运行结束时进行回滚?-> 这些类不属于我们,否则必须更改整个质量处理结构。

4

2 回答 2

0

作为程序员,您可以控制并且应该知道正在更新什么。如果您将代码结构化为 LUW,那么您可以控制正在更新哪些表以及在什么时候捕获仍然允许适当回滚的错误。因此,上面给出了关于 commit 语句的具体答案,但作为程序员,您可以将语句分组以完成相同的操作。

之后.....

于 2014-05-25T15:28:19.277 回答
-1

AFAIK 在调用提交的那一刻,该提交语句之前和最后一次提交之后的所有 DML 都提交到数据库。因此,如果在您的提交之后有更多的提交,那么它们不会受到您的提交的影响,您的提交也不会影响他们的提交,除非当然有回滚的条件。

于 2014-05-24T11:25:10.650 回答