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 系统中,可以隐式或使用显式命令触发数据库提交或回滚

1.1-SAP 数据更新之数据库事务(SAP LUW & DB LUW)_第1张图片

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 TRANSACTIONSUBMIT 完成时
    • 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 LUWCOMMIT WORK
  • 3.前一个 SAP LUWROLLBACK WORK
  • SAP LUW结束
  • 1.当前 SAP LUWCOMMIT WORK
  • 2.当前 SAP LUWROLLBACK WORK
  • SAP LUW还包含数据库锁,两种机制共同保障数据一致性

5. SAP LUW的应用

  • 1.当各对话框步骤间没有逻辑关联,即业务没有关联性时 DB LUW就可以满足业务需求
    • 如图业务流程 DB LUW有多次独立提交(绿色
    • DB LUW 会自动被隐式事务提交或回滚
    • 前一个 DB LUW 执行完成后,就不能对其回滚(ROLLBACK WORK
      1.1-SAP 数据更新之数据库事务(SAP LUW & DB LUW)_第2张图片
  • 2.当各对话框步骤间有逻辑关联,为了保证数据一致性,需要所有 DB LUW 一起提交执行时则需要 SAP LUW
    • SAP会将所有 DB LUW 绑定(Binding)为 SAP LUW
    • 如图 DB LUW不会自动提交或回滚,转而由 SAP LUW统一提交或回滚
    • 此时 DB LUW 不能被隐式事务提交或回滚,只能由 SAP LUW 显式事务提交或者回滚统一处理
      1.1-SAP 数据更新之数据库事务(SAP LUW & DB LUW)_第3张图片

下一章:1.2-SAP 数据更新之SAP LUW Bundling DB LUW
将介绍如何在ABAP编程中使用(SAP LUW 绑定 DB LUW)

你可能感兴趣的