ABAP 程序运行锁
1. create a Table ZRUNNING_LOCK (tcode:se11)
fields: MANDT , PROGNAME
2. create Lock object EZRUNLOCK (tcode:se11)
短文本 程序运行锁
3. 如果需对程序加锁,则在程序中执行
perform do_lock
4. 如果需对程序解锁,则在程序中执行
perform release_lock
————————————————————–
DEQUEUE_EZRUNLOCK 释放对象 EZRUNLOCK 的锁定
ENQUEUE_EZRUNLOCK 对象 EZRUNLOCK 要求的锁定
*&———————————————————————*
*& Include ZILOCKFUN01
*&———————————————————————*
* 程序运行锁, 控制同一时间只有一个程序在运行
*———————————————————————-
*&——————————————————————–*
*& Form do_lock
*&——————————————————————–*
* 提交一个锁定
*———————————————————————*
* –>PI_PROGNAME 程序名
* –>PI_WAIT 是否等待
* –>PI_SHOW_MSG 是否显示消息
* –>PO_SUBRC 返回状态
* –>PO_MSG 返回的消息
*———————————————————————*
FORM do_lock USING pi_progname TYPE progname
pi_wait TYPE c "X=waiting
CHANGING po_subrc TYPE c "0=OK,非0=Error
po_msg TYPE text100.
CALL FUNCTION ‘ENQUEUE_EZRUNLOCK’
EXPORTING
mode_zrunning_lock = ‘E’
mandt = sy-mandt
progname = pi_progname
* X_PROGNAME = ‘ ‘
* _SCOPE = ’2′
_wait = pi_wait
* _COLLECT = ‘ ‘
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
po_subrc = ’1′.
IF sy-subrc = 1.
CONCATENATE ‘另一用户’ sy-msgv1 ‘正在运行该程序!’ INTO po_msg
SEPARATED BY space.
ELSE.
po_msg = ‘锁定该程序时出错!’.
ENDIF.
ELSE.
po_subrc = ’0′.
ENDIF.
ENDFORM. "do_lock
*&——————————————————————–*
*& Form release_lock
*&——————————————————————–*
* 释放锁定
*———————————————————————*
* –>PI_PROGNAME 程序名
*———————————————————————*
FORM release_lock USING pi_progname TYPE progname.
CALL FUNCTION ‘DEQUEUE_EZRUNLOCK’
EXPORTING
mode_zrunning_lock = ‘E’
mandt = sy-mandt
progname = pi_progname
* X_PROGNAME = ‘ ‘
* _SCOPE = ’3′
* _SYNCHRON = ‘ ‘
* _COLLECT = ‘ ‘
.
ENDFORM. "release_lock
ABAP 程序运行锁相关推荐
- 解除ABAP程序编辑锁的方法
方法1:在已有SE38创建修改权限的情况下 REPORT ZUNLOCK.TABLES: TRDIR. "System table TRDIRPARAMETERS: PROGRAM LIKE ...
- ABAP 程序运行超时
如下图:程序运行时间长,SAP默认允许十分钟自动中断程序报错 解决方法: T-CODE:RZ11 修改系统参数 rdisp/scheduler/prio_high/max_runtime 增加时长. ...
- ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍
很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到,我的 ABAP 学习之路,其实并没有阅读过中文的 ...
- ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍
ABAP 标准培训教程 BC400 学习笔记之一 很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到 ...
- 如何判断ABAP程序前台还是后台运行[sy-batch]
可以通过系统变量sy-batch判断abap程序是前台运行还是后台运行,sy-batch等于'X'是后台运行,等于空就是前台运行.
- ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序
我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁.若无外力干预,这些处于死锁状态的进程将永 ...
- sap abap开发从入门到精通_SAP开发-ABAP数据字典(锁)
企业级软件或开发框架,必然支持后台高并发,即支持多人同时访问数据库.SAP作为资深企业管理软件,自然也不例外,ABAP可以很方便的开发出支持高并发的程序,要实现高并发,正确使用锁对象是其中一个重要环节 ...
- ABAP程序中的七大危险漏洞
概述 SAP的企业资源规划(ERP)系统已成为企业各项关键业务:财务管理.薪资管理.人力资源管理.供应链管理.客户关系管理等的基础平台.然而,在每个SAP的安装实施过程中,都会基于客户的需求进行不同程 ...
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...
最新文章
- 本科计算机学渣,2017计算机老学渣的经验教训
- 支持高并发的IIS Web服务器常用设置
- python三层装饰器-python中自带的三个装饰器的实现
- halcon算子翻译——dev_set_paint
- python如何注释掉一段代码_爬取出来的网页代码都被注释掉怎么解决?
- python利用cookie模拟登录
- java 向上抛异常_java throws 向上抛出的概念问题
- 数据结构与算法-- 二叉树中和为某一值的路径
- Java面试那些事--可能会问的那些问题(中高级篇)
- ARX二次开发 遍历删除所有的约束
- PDF417条码生成类
- sql建表与gp建表语句
- 视频编解码之理论概述
- 网易社招面试几轮?网易java社招面试题分享
- Springboot异常--Identify and stop the process that‘s listening on port 9090 or configure this applicat
- 河南省第六届ACM程序设计大赛(共7道,目前只做了三道。待续)
- 批量下载excel中超链接对应的文件
- dell r720xd 裸机配置系列 3 配置网络
- 安卓应用开发 MyWeChat(二)
- 文本diff算法Patience Diff