SAP ABAP 锁对象(Lock Objects)

锁对象是 ABAP 字典提供的一种功能,用于同步多个程序对相同数据的访问。在特定程序的帮助下访问数据记录。SAP 为了控制并发,使用了锁对象,以避免在数据库中插入或更改数据时出现不一致。要锁定其数据记录的表必须在锁定对象中定义,并包含其键字段。


锁机制

以下是锁机制完成的两个主要功能:

  • 程序可以与其他程序就其正在读取或更改的数据记录进行通信。
  • 一个程序可以阻止自己读取刚刚被另一个程序更改的数据(控制并发)。

锁请求 首先由程序生成。然后,该请求发送到排队服务器,并在锁表中创建锁。排队服务器设置锁,程序最终准备好访问数据。


创建锁对象

  • 步骤 1 - 转到事务 SE11。将打开以下界面:

  • 步骤 2 - 单击 Lock Object(锁定对象)单选按钮。输入以 E 开头的锁定对象的名称,然后单击 Create 创建按钮。这里我们使用 EZLOCK12

  • 步骤 3 - 输入简短描述字段,然后单击 Tables 表选项卡。

  • 步骤 4 - 在 Name 字段中输入表名,并选择锁定模式为 Write Lock(写入锁)。

  • 步骤 5 - 单击 Lock parameter(锁定参数)选项卡,将出现以下界面:

  • 步骤 6 - 保存并激活。自动生成 2 个功能模块。要检查功能模块,我们可以使用转到 → 锁定模块。

  • 步骤 7 - 单击 Lock Modules(锁定模块),将打开以下界面:

    已成功创建锁对象。

    锁对象中包含的表的键字段称为 锁参数,它们在函数模块中用作输入参数。这些参数用于设置和删除由锁对象定义生成的锁。