0
点赞
收藏
分享

微信扫一扫

判断是否有人在操作某张表,并获取用户_SAP刘梦_新浪博客

加锁时,有时候需要判断谁占用了该表

 

   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.  


举报

相关推荐

0 条评论