• 判断是否有人在操作某张表,并获取…


    加锁时,有时候需要判断谁占用了该表
      
        call function 'ENQUEUE_READ'
               exporting
                    gclient               = gclient
                    gname                 = 'EWUARCHIV'
                    garg                  = garg
                    guname                = space
               importing
                    number                = number
                    subrc                 = subrc
               tables
                    enq                   = enq
               exceptions
                    communication_failure = 1
                    system_failure        = 2
                    others                = 3.
          if subrc = 0 and number ne 0.
            read table enq index 1.
            if sy-subrc = 0.
              message i510(eu) with enq-guname 'EWUARCHIV'.
            else.
              message i521(eu) with 'EWUARCHIV'.
            endif.
          else.
            message i521(eu) with 'EWUARCHIV'.
          endif.
          aendern = space.
        when others.
          message s010(ad) with 'Nur Anzeige m?glich.'(011).
          aendern = space.

    例:
    FORM zform_lock_data USING  u_matnr TYPE matnr
                                 u_lgpla TYPE lgpla
                          CHANGING lock_name TYPE string.

       CLEAR g_it_lock_name.
       CLEAR g_wa_lock_name.
       CLEAR lock_name.

       CALL FUNCTION 'ENQUEUE_EZ_STOCK_MOVE'
        EXPORTING
          mode_zstock_view       = 'X'
          matnr                  = u_matnr
          lgpla                  = u_lgpla
    *      X_MATNR                = ' '
    *      X_LGPLA                = ' '
    *      _SCOPE                 = '2'
    *      _WAIT                  = ' '
    *      _COLLECT               = ' '
        EXCEPTIONS
          foreign_lock           = 1
          system_failure         = 2
          OTHERS                 = 3
                 .
       IF sy-subrc <> 0.

         CALL FUNCTION 'ENQUEUE_READ'
           EXPORTING
             gclient = sy-mandt
             gname   = 'ZSTOCK_VIEW'
             garg    = ' '
             guname  = ''
           TABLES
             enq     = g_it_lock_name.

         LOOP AT g_it_lock_name INTO g_wa_lock_name.

           IF g_wa_lock_name-garg(18) = u_matnr AND g_wa_lock_name-garg+18 = u_lgpla.
             CONCATENATE lock_name
                         g_wa_lock_name-guname ':' INTO lock_name.
           ENDIF.
         ENDLOOP.

       ENDIF.
     ENDFORM. 

    另外SM12是查看表被锁情况的一个tcode,可以进去看看
    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    C# memoryStream
    C# memoryStream
    C# HSSFWorkbook与XSSFWorkbook的区别和.xls和.xlsx的区别
    C# HSSFWorkbook与XSSFWorkbook的区别和.xls和.xlsx的区别
    C# winform 启动外部程序
    C# winform 启动外部程序
    NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】
    NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】
    FileStream 的FileShare一点小认识
    FileStream 的FileShare一点小认识
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802240.html
Copyright © 2020-2023  润新知