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 程序运行锁相关推荐

  1. 解除ABAP程序编辑锁的方法

    方法1:在已有SE38创建修改权限的情况下 REPORT ZUNLOCK.TABLES: TRDIR. "System table TRDIRPARAMETERS: PROGRAM LIKE ...

  2. ABAP 程序运行超时

    如下图:程序运行时间长,SAP默认允许十分钟自动中断程序报错 解决方法: T-CODE:RZ11 修改系统参数 rdisp/scheduler/prio_high/max_runtime 增加时长. ...

  3. ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍

    很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到,我的 ABAP 学习之路,其实并没有阅读过中文的 ...

  4. ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍

    ABAP 标准培训教程 BC400 学习笔记之一 很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到 ...

  5. 如何判断ABAP程序前台还是后台运行[sy-batch]

    可以通过系统变量sy-batch判断abap程序是前台运行还是后台运行,sy-batch等于'X'是后台运行,等于空就是前台运行.

  6. ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序

    我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁.若无外力干预,这些处于死锁状态的进程将永 ...

  7. sap abap开发从入门到精通_SAP开发-ABAP数据字典(锁)

    企业级软件或开发框架,必然支持后台高并发,即支持多人同时访问数据库.SAP作为资深企业管理软件,自然也不例外,ABAP可以很方便的开发出支持高并发的程序,要实现高并发,正确使用锁对象是其中一个重要环节 ...

  8. ABAP程序中的七大危险漏洞

    概述 SAP的企业资源规划(ERP)系统已成为企业各项关键业务:财务管理.薪资管理.人力资源管理.供应链管理.客户关系管理等的基础平台.然而,在每个SAP的安装实施过程中,都会基于客户的需求进行不同程 ...

  9. 在SAP云平台ABAP编程环境上编写第一段ABAP程序

    距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...

最新文章

  1. 本科计算机学渣,2017计算机老学渣的经验教训
  2. 支持高并发的IIS Web服务器常用设置
  3. python三层装饰器-python中自带的三个装饰器的实现
  4. halcon算子翻译——dev_set_paint
  5. python如何注释掉一段代码_爬取出来的网页代码都被注释掉怎么解决?
  6. python利用cookie模拟登录
  7. java 向上抛异常_java throws 向上抛出的概念问题
  8. 数据结构与算法-- 二叉树中和为某一值的路径
  9. Java面试那些事--可能会问的那些问题(中高级篇)
  10. ARX二次开发 遍历删除所有的约束
  11. PDF417条码生成类
  12. sql建表与gp建表语句
  13. 视频编解码之理论概述
  14. 网易社招面试几轮?网易java社招面试题分享
  15. Springboot异常--Identify and stop the process that‘s listening on port 9090 or configure this applicat
  16. 河南省第六届ACM程序设计大赛(共7道,目前只做了三道。待续)
  17. 批量下载excel中超链接对应的文件
  18. dell r720xd 裸机配置系列 3 配置网络
  19. 安卓应用开发 MyWeChat(二)
  20. 文本diff算法Patience Diff

热门文章

  1. PM应该找哪些副业?
  2. linux与windows互传文件、用户与用户组管理、密码配置文件
  3. 数据库分区分表以及读写分离
  4. 复选框全选效果,根据单个复选框的选择情况确定全选复选框是否被选
  5. Android使用SAX解析XML(6)
  6. 以色列全国路网遭到了网络攻击 造成交通拥堵
  7. chmod 是一条在Unix系统中用于控制用户对文件的权限的命令
  8. Java编程基础10——面向对象_多态抽象类接口
  9. 4月27日云栖精选夜读丨阿里CMO董本洪:你要运营流量,更要运营超级用户
  10. cocosStudio制作ScrollView并在cocos2dx 3.0中使用。