1.1-SAP 数据更新之数据库事务(SAP LUW & DB LUW)
1.DB LUW简介:
- 1.DB LUW全称:Database Logical Unit of Work
- 2.从数据库编程的角度来看,DB LUW 是一个不可分割的数据库操作序列,以事务的提交或回滚结束
- 3.DB LUW 要么完全由数据库系统执行,要么根本不执行
- 4.如果 DB LUW 中发生错误,则自 DB LUW 中所有数据库更改都将被回滚(SAP中事务的回滚称为反转)
- 5.DB LUW 中发生的数据库更改直到事务提交后才真正写入数据库。 在发生这种情况之前,您可以使用数据库回滚来撤消更改
- 6.在 SAP 系统中,可以隐式或使用显式命令触发数据库提交或回滚
2.SAP LUW和DB LUW的关系
- 1.DB LUW是底层数据库自身所提供的保持数据一致性机制,与 SAP 无关
- 2.SAP LUW 是 SAP 创造的一种一致性维护机制
- 3.SAP LUW 可以包含多个对话步骤,即多个 DB LUW,通过 SAP LUW 可以把多个 DB LUW 进行捆绑
3.SAP LUW的提交的触发条件(显式更新/隐式更新)
- 隐式数据库提交(隐式COMMIT WORK)
- 1.dialog执行完成时(Screen PBO执行完毕,输出屏幕时)
- 2.执行语法 CALL TRANSACTION 或 SUBMIT 完成时
- 3.同步或异步调用 RFC 执行完成时
- 4.使用 WAIT 语法并且工作进程被暂时中断等待执行结果时
- 5.*系统弹出消息框类型为(I,W,E)时
- A:Abend 异常终止
- E:Error 错误
- I :Information 信息
- S:Success 成功
- W:Warning 警告
- X:Exit 退出
- 隐式数据库反转(隐式ROLLBACK WORK)
- 1.应用程序中的 Runtime Error(也就是程序崩溃出现DUMP时)
- 2.ABAP中使用 MESSAGE 语法设置类型为(A,X)使系统接受到终止的指令时(在某些情况下类型为(I,W,E)时也会触发终止指令)
- A:Abend 异常终止
- E:Error 错误
- I :Information 信息
- S:Success 成功
- W:Warning 警告
- X:Exit 退出
- 显式数据库提交(显式COMMIT WORK)
- 1.调用函数模块 DB_COMMIT 时
- 2.使用 ABAP 语句 COMMIT WORK 时
- 显式数据库反转(显式ROLLBACK WORK)
- 1.使用 ABAP 语句 ROLLBACK WORK 时
4.SAP LUW的开始和结束
- SAP LUW开始
- 1.dialog程序开始运行时
- 2.前一个 SAP LUW 被 COMMIT WORK
- 3.前一个 SAP LUW 被 ROLLBACK WORK
- SAP LUW结束
- 1.当前 SAP LUW 被 COMMIT WORK
- 2.当前 SAP LUW 被 ROLLBACK WORK
- SAP LUW还包含数据库锁,两种机制共同保障数据一致性
5. SAP LUW的应用
- 1.当各对话框步骤间没有逻辑关联,即业务没有关联性时 DB LUW就可以满足业务需求
- 如图业务流程 DB LUW有多次独立提交(绿色)
- DB LUW 会自动被隐式事务提交或回滚
- 前一个 DB LUW 执行完成后,就不能对其回滚(ROLLBACK WORK)
- 2.当各对话框步骤间有逻辑关联,为了保证数据一致性,需要所有 DB LUW 一起提交执行时则需要 SAP LUW
- SAP会将所有 DB LUW 绑定(Binding)为 SAP LUW
- 如图 DB LUW不会自动提交或回滚,转而由 SAP LUW统一提交或回滚
- 此时 DB LUW 不能被隐式事务提交或回滚,只能由 SAP LUW 显式事务提交或者回滚统一处理
下一章:1.2-SAP 数据更新之SAP LUW Bundling DB LUW
将介绍如何在ABAP编程中使用(SAP LUW 绑定 DB LUW)
post SAP-Garson
原文链接:https://blog.csdn.net/qq_30797051/article/details/121435463文章来自于网络,如果侵犯了您的权益,请联系站长删除!