ST12常规操作
1.手动解锁锁定的单据, 可能导致数据不一致, 慎用!!!
ABAP获取锁列表
1\. 不废话,上代码
DATA: gt_list TYPE if_enq_admin=>lock_list."DATA(go_admin) = NEW cl_enq_admin( iv_restrictions = '' ) ##NEEDED.go_admin->if_enq_admin~get_locks( EXPORTING iv_process_type = if_enq_admin=>type_server iv_name = `` iv_argument = `` iv_client = CONV #( sy-mandt ) iv_username = `` iv_owner = `*` iv_max_entries = 100000 IMPORTING et_list = gt_list ev_peak = DATA(lv_peak) ##NEEDED ev_max = DATA(lv_max) ##NEEDED ev_incomplete = DATA(lv_incomplete) ev_matching_locks = DATA(lv_matching_locks) RECEIVING rv_rc = DATA(lv_rc) ).cl_demo_output=>display( gt_list ).3.避坑点,如下几个STRING类型参数,传参时需用``符号包裹而不是'',经验证IV_ARGUMENT和IV_USERNAME使用''包裹时查询不到结果。
小贴士
系统锁资源是有限的,如果在自开发程序中锁定粒度小,锁定单据过多,超过系统允许最大的锁定数,会导致获取锁失败,也会影响到SAP标准单据的更新及过账,导致系统DUMP,所以开发时请注意。
1\. 系统最大锁定数,查看方法
如图所示,当前系统允许的最大锁定数量为25万。
复制enq/server/schema后面参数值,然后双击行,点更改值,修改
MAX_LOCKS=后面数值