答案:首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。创建锁对象时,系统会自动生成两个 FM 来进行锁管理。用于设锁的 FM 为: ENQUEUE_。它用于在锁表(Lock Table)中生成一个锁项(Lock Entry)。若设锁不成功的话,就会在 Return 中反映出来。用于释放锁的 FM 为:DEQUEUE_。它用于从锁表中删除一个锁项。在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 语句就可以调用它们。这两个锁 FM 是在 SAP 系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的服务器上,而该服务器专门用于维护整个 SAP 系统的主锁表(Central Locak Table)。有两种锁类型:共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。加锁-SE11-锁对象-填入primary TABLE的NAME (表名) LOCK MODE -在LOCK PARAMETER中字段生产了字段,可以去掉不需要的,加锁时:模式-FUNCTION-用*加刚才建立的锁对象的名称 用出现几个function 看描述就知道加锁和解锁的function了(解锁DEQUEUE_EZTBHV 加锁ENQUEUE_EZTBHV*对地点加锁CALL FUNCTION 'ENQUEUE_EZTLIS_WERKS'EXPORTING MODE_ZTLIS = 'E' MANDT = SY-MANDT PERID = SE_PERID WERKS = SE_WERKS X_PERID = ' ' X_WERKS = ' ' _SCOPE = '2' _WAIT = ' ' _COLLECT = ' 'EXCEPTIONS FOREIGN_LOCK = 1 SYSTEM_FAILURE = 2 OTHERS = 3 .IF SY-SUBRC 0.MESSAGE S142(ZZBD) WITH SE_WERKS sy-uname.EXIT.