01
ST12常规操作
1.手动解锁锁定的单据,可能导致数据不一致,慎用!!!
2.查看锁定的用户、锁对象和锁定的TCODE
3.查看锁定的用户会话信息(客户端主机名、IP地址)
02
ABAP获取锁列表
1. 不废话,上代码
DATA: gt_list TYPE if_enq_admin=>lock_list."
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=后面数值
温馨提示
如果你喜欢本文,请分享给有需要的朋友,想要获得更多信息,请关注我。