SAP 中测试序列 COMMIT 和 ROLLBAC 是什么

作者:SAP养家 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, PP, 开发, 数据工程, 物料管理, 生产
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图

我们在 [ 上节课

](http://mp.weixin.qq.com/s?__biz=MzI0MjQ2OTUxNw==&mid=2247484770&idx=1&sn=a0d27e210b5a6790f4a593b1f8414278&chksm=e97a9a80de0d1396fcf9ef73eac4b3701567fe958defaebf15177342ea92a675309afdd10949&scene=21#wechat_redirect)

中讲到了,我们在用BAPI修改采购申请时,虽然什么都是OK的,SAP的返回消息也是S ,但数据 就是没有变化。

原因是我们没有有用COMMIT 。

那么什么是COMMIT 呢(还有ROLLBACK)?

COMMIT 和 ROLLBACK 的原理:

比如取钱要更新两张底表:取款记录表和账户余额表

极端情况:

取款的时候,取款记录表更新OK ,但是由于断网或者其他情况,导致账户余额表没开始更新。

这样明细和余额就对不上的,这种情况,几遍概率即便0.00001,也不允许发生的。

因此设计时出现了一个叫做事务的概念,就是COMMIT 和 ROLLBACK

COMMIT 是两张表都更新OK ,同时进行确认动作。

ROLLBACK 是其中一张表NG,另外一张表就回滚撤销原来的更新。

SAP也应用了这个概念,因此你有时会发现,我们在调用BAPI 更新数据时,明明提示更新OK ,但是却看不到记录,是因为我们没有调用COMMIT

做最后一步的提交。

因此我们需要把BAPI 和 COMMIT 放到一个序列,BAPI 执行OK后调用COMMIT ,操作如下图

SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图

这样我们就可以在后台看到记录了。

当然了,并不是所有的BAPI 都用了COMMIT 的机制 。

SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP 中测试序列 COMMIT 和 ROLLBAC 是什么 - 封面图
SAP养家

关于作者:SAP养家

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP中测试序列COMMIT和ROLLBAC是什么.md」整理生成,仅用于内部技术分享与学习交流。