获取SM12锁列表

文摘   2024-11-18 18:18   北京  

01

ST12常规操作

1.手动解锁锁定的单据,可能导致数据不一致,慎用!!!

2.查看锁定的用户、锁对象和锁定的TCODE

3.查看锁定的用户会话信息(客户端主机名、IP地址)



02

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 ).

 

2.查询结果如下

3.避坑点,如下几个STRING类型参数,传参时需用``符号包裹而不是'',经验证IV_ARGUMENT和IV_USERNAME使用''包裹时查询不到结果。

  

03

小贴士

系统锁资源是有限的,如果在自开发程序中锁定粒度小,锁定单据过多,超过系统允许最大的锁定数,会导致获取锁失败,也会影响到SAP标准单据的更新及过账,导致系统DUMP,所以开发时请注意。


1. 系统最大锁定数,查看方法

如图所示,当前系统允许的最大锁定数量为25万。

2.最大锁定数调整方法(不建议调整)

复制enq/server/schema后面参数值,然后双击行,点更改值,修改

MAX_LOCKS=后面数值


 

END

 

温馨提示

如果你喜欢本文,请分享给有需要的朋友,想要获得更多信息,请关注我。





 

 

扫码关注我们

以便获取最新更新内容


 

码农干货铺
永远要保持一种无论何时何地都逼着自己更努力更优秀来享受更好生活的学习状态
 最新文章