博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断是否有人在操作某张表,并获取…
阅读量:4569 次
发布时间:2019-06-08

本文共 1409 字,大约阅读时间需要 4 分钟。

加锁时,有时候需要判断谁占用了该表
  
    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,可以进去看看

转载于:https://www.cnblogs.com/senlinmu110/p/3802240.html

你可能感兴趣的文章
HTMl5的存储方式sessionStorage和localStorage详解
查看>>
BZOJ 4516: [Sdoi2016]生成魔咒——后缀数组、并查集
查看>>
《JAVA程序设计》实训第一天——《猜猜看》游戏
查看>>
普通用户 crontab 任务不运行
查看>>
第三次冲刺(三)
查看>>
android实现静默安装demo
查看>>
数据缓存方案
查看>>
HDU 1086:You can Solve a Geometry Problem too
查看>>
HIPO图
查看>>
工作日志2014-06-30
查看>>
稀疏矩阵
查看>>
OpenCV2马拉松第14圈——边缘检測(Sobel,prewitt,roberts)
查看>>
移动端事件点透问题
查看>>
P1896 [SCOI2005]互不侵犯
查看>>
ESP定律手工脱壳步骤
查看>>
wex5 教程 之 图文讲解 登陆,注册,页面跳转
查看>>
问题7:JavaScript 常用正则示例
查看>>
xampp 虚拟机配置
查看>>
第五次实验
查看>>
从统计学角度来看深度学习(1):递归广义线性模型
查看>>