转自http://www.cnblogs.com/aBaoRong/archive/2012/06/15/2550458.html

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程序执行效率和优化 ABAP Performance Examples

    一.             SQL Interface1.         Select ... Where vs. Select + Check用Select … Where语句效率比Select ...

  2. ABAP程序的效率(转)

    在网上看到的一篇文章: 程序的效率是每个程序员都应该重视的,无论您是采用哪一种语言进行开发. 程序有时候越短,并不一定越快,有时候程序很多代码,但不一定会很慢. 性能是一把双刃剑, 获得时间效率的同时 ...

  3. NET5实践:项目创建-结构概述-程序运行-发布部署

    ASP.NET5实践01:项目创建-结构概述-程序运行-发布部署   1.项目创建 ASP.NET5项目模板有三种: 新建项目: 选择模板: 2.结构概述 References对应配置是project ...

  4. 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧

    最近Jerry在忙一个项目,技术栈换成了nodejs平台,语言换成了JavaScript,因为赶项目进度,一直没时间更新公众号.感谢大家的支持,关注人数还是慢慢地增长到了3000. 今天我们来聊聊一个 ...

  5. 通过ABAP程序创建透明表

    最近在解决用户账号问题的时候,需要通过ABAP程序创建透明表,查询了相关资料,总结如下. 通过ABAP程序创建透明表,主要利用了4个函数: DDIF_TABL_ACTIVATE: 激活透明表 GOX_ ...

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

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

  7. golang获取程序运行路径

    golang获取程序运行路径: /* 获取程序运行路径 */ func getCurrentDirectory() string { dir, err := filepath.Abs(filepath ...

  8. linux下实现在程序运行时的函数替换(热补丁)

    声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术原作者的分享. 但是injso文章中的代码存在一些问题,所以后面出现的代码是经过作者修改和检测的. ...

  9. 放在NSArray、NSDictionary等容器内的对象Item,Item中的property在程序运行过程中被无故释放

    可能是被释放的property本身是OC对象而它的属性被误写成assign,例如: @interface MyItem : Object @property (nonatomic, assign) N ...

随机推荐

  1. java时间戳

    1.时间戳的定义 时间戳是指文件属性里的创建.修改.访问时间. 数字时间戳技术是数字签名技术一种变种的应用.在电子商务交易文件中,时间是十分重要的信息.在书面合同中,文件签署的日期和签名一样均是十分重 ...

  2. java筛选法求素数

    这本身没什么,代码一堆 发来纪念下而已 本来刚学习java,编写输出100以内的素数 对于我这个有代码运行性能洁癖的人(但是本身又不懂算法)来说,不能忍 于是看了些资料 参考: http://blog ...

  3. 使用wex5得到的一些教训

    博主一直都是做web开发,前段时间有个小想法,想给自己做个android小应用(很小,功能特别简单). 了解到可以用js直接做,貌似很简单,选用了wex5(基于codova插件)来直接开发. 最终发现 ...

  4. JSP内置对象---请求重定向与请求转发的区别

    视频地址:http://www.imooc.com/video/3306 方便理解:

  5. python 中的高级函数sorted()

    Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted() ...

  6. Fragment中的onKeyDown事件让Activity处理--处理特殊按键比如移动终端扫描

    一些特殊按键事件需要在Activity中处理public void onKeyDown(int keyCode, KeyEvent event){ //让Activity处理 getActivity( ...

  7. 官网app下载更换成微信公众号二维码 测试

    微信现在很火啊.公司官网原先提供的ios和andriod的app下载链接要求切换成微信公众号二维码.简单的替换,大家都说不需要测试直接上线.还是测了下. 1 验证所有与下载相关的信息都已去除. 包括下 ...

  8. IIS7+windows 64位配置注意事项

    问题和解决办法 1  如果网站为Asp:再asp中注意启用父路径 2  操作必须使用一个可更新的查询:给用户iis_iusrs 一个完全控制的权限 3  Windows(64位IIS)未在本地计算机上 ...

  9. iOS系统tabbar图标出现重影问题

    大家在自定义tabbar的时候会将系统的tabbar干掉,然后放上自已自定义的tabbar(含有想要的Button)对不对,具体代码如下: /** * 添加自定义的tabBar */ -(void)a ...

  10. 开源BTS产品中存在多处漏洞,攻击者或可劫持手机通讯基站

    前言 在过去的几周时间里,我从多个方面对GSM的安全性进行了调查和研究,例如GSM通信协议中存在的漏洞.除此之外,我还对目前世界上应用最为广泛的BTS软件进行了安全审计.在这篇文章中,我将会给大家介绍 ...