ps:bapi commit work 中 有个全局解锁,会解除所有锁
调用
DATA(ls_ret) = zcl_comm_tools=>enq_table( iv_tabnm = 'ZFIT0022' iv_tabkey = CONV rstable-varkey( <ls_data>-zfkls ) ).
代码
IV_TABNM TYPE RSTABLE-TABNAME 表名
IV_TABKEY TYPE RSTABLE-VARKEY 表的锁定键
value( IV_MODE ) TYPE DD26E-ENQMODE DEFAULT 'E' 锁定方式
value( IV_WAIT ) TYPE BOOLEAN OPTIONAL 布尔变量(X= 真,-= 假,空格 = 未知)
value( RS_RET ) TYPE TS_MSG
METHOD enq_table.
* mode_rstable:
* E 用于修改表,可累加,不能跨程序加解锁。
* S 用于读取数据。
* X 独占锁,用于修改数据,可跨程序加解锁。
CLEAR rs_ret.
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
mode_rstable = iv_mode
tabname = iv_tabnm
varkey = iv_tabkey
_wait = iv_wait
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
rs_ret-subrc = sy-subrc.
IF rs_ret-subrc <> 0.
rs_ret-lockuser = sy-msgv1.
ENDIF.
ENDMETHOD.