获取 SM12锁列表

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Cloud Architecture, Data Engineering, SD, WM, 云架构, 仓库管理, 开发, 数据工程, 销售分销
获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

ST12常规操作

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

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

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

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

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

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

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.查询结果如下

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

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

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

小贴士

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

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

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图

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

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

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

MAX_LOCKS=后面数值

获取 SM12锁列表 - 封面图
获取 SM12锁列表 - 封面图
ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「获取SM12锁列表.md」整理生成,仅用于内部技术分享与学习交流。