当在一个BAPI_TRANSACTION_COMMIT中等于'X‘时,使用“等待”参数的“BADi”会产生什么效果?我应该期望SAP在LUW提交时提交数据吗?
我知道在'BAPI_TRANSACTION_COMMIT‘中,如果指定参数'WAIT’= 'X‘,就会发生’提交工作‘或’提交工作并等待‘。
我还意识到在BADi中进行“提交工作”是不正确的,但是如果我通过BAPI使用“提交工作并等待”呢?
有关提交的SAP文档说:
这将按照注册顺序和公共数据库LUW执行所有高优先级(VB1)更新功能模块。如果不指定添加和等待,程序不会等到更新工作进程执行了它(异步更新),而是在提交工作之后立即恢复。但是,如果指定了添加和等待,提交工作后的程序处理将不会继续,直到更新工作流程执行了高优先级更新功能模块(同步更新)。当所有高优先级更新功能模块都成功完成时,语句将按照公共数据库LUW中的注册顺序执行低优先级(VB2)更新功能模块。
我之所以感到困惑,是因为我们有一个BADi实现,其中调用了参数'WAIT‘= 'X’的函数,并且我们找到了一个says,它禁止在该BADi中使用‘提交工作’,但是它说‘提交工作’,而不是‘提交工作和等待’。
所以我认为实现是正确的,因为当LUW完成时,数据就会被执行.或者不是。有什么评论吗?
发布于 2014-10-22 06:33:14
实际上,当调用COMMIT WORK或COMMIT WORK AND WAIT时,LUW就完成了。唯一的区别是COMMIT WORK是异步的,COMMIT WORK AND WAIT是同步的。
具有BAPI_TRANSACTION_COMMIT参数集的WAIT等于COMMIT WORK AND WAIT。如果没有参数设置,它就等于COMMIT WORK。
而且这是真的。不能在BAdI中提交。如果在BAdI已经执行之后出现回滚怎么办?它可能使您的数据处于完全不一致的状态。
https://stackoverflow.com/questions/26494338
复制相似问题