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

  • 相关阅读:
    GB28181 流媒体几种数据传输模式UDP、TCP(被动、主动)
    LiveGBS
    利用ffmpeg采集纯音频推流到LiveQing实现RTMP、FLV、HLS web直播与录像回放
    LiveQing高性能RTMP、FLV、HLS视频流媒体服务器软件如何自定义修改成自己的服务软件名称
    LiveQing
    LiveQing直播流媒体服务解决直播录像存储、直播录像回看、直播录像计划排班配置
    GB28181流媒体服务LiveGBS前端源码(vue+webpack)
    LiveNVR
    华为、科达、海康、大华等厂家摄像头通过非标方式(RTSP)接入流媒体服务实现WEB直播与录像
    LiveNVR RTSP流媒体服器软件通过按需直播降低企业服务带宽
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6257542.html
Copyright © 2011-2022 走看看