zoukankan      html  css  js  c++  java
  • ABAP程序运行锁定

    转自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

  • 相关阅读:
    react项目如何调试?
    react使用引入svg的icon;svg图形制作
    react使用echarts
    SQL SEVER数据库重建索引的方法
    ThreadLocal的内存泄露
    ThreadLocal是否会引发内存泄露的分析 good
    深入分析 ThreadLocal 内存泄漏问题
    清理ThreadLocal
    线程池 Threadlocal 使用注意
    ThreadLocal对象使用过程中容易陷入的坑
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6257542.html
Copyright © 2011-2022 走看看