Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2812

Re: Multiple parallel ABAP Proxy calls by multiple users

$
0
0

Code is attached..

 

 

DO.

 

 

    CLEAR: zenq, zenq[].

 

 

    SELECT SINGLE *

      FROM zp6lock

      INTO wa_lock

      WHERE proj = '1'.

 

 

    IF sy-subrc NE '0'.

      lock = space.

    ELSE.

      lock = 'X'.

    ENDIF.

 

 

    CALL FUNCTION 'ENQUEUE_READ'

      EXPORTING

        gclient               = sy-mandt

        gname                 = 'ZP6LOCK'

      TABLES

        enq                   = zenq

      EXCEPTIONS

        communication_failure = 1

        system_failure        = 2

        OTHERS                = 3.

    IF sy-subrc <> 0.

* Implement suitable error handling here

    ENDIF.

 

 

    IF zenq IS NOT INITIAL OR lock IS NOT INITIAL.

 

 

      l_index =  50.

 

 

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

        EXPORTING

          percentage = l_index

          text       = 'Please wait or Try later, P6 locked by another user'.

      wait up to 4 SECONDS.

 

 

    ELSE.

 

 

      EXIT.

 

 

 

 

    ENDIF.

 

 

  ENDDO.

 

 

 

 

      CALL FUNCTION 'ENQUEUE_EZZP6LOCK' "

        EXPORTING

*         mode_zp6lock   = 'E'

          mandt          = sy-mandt

*         PROJ           =

*         X_PROJ         = ' '

*         _SCOPE         = '2'

*         _WAIT          = ' '

*         _COLLECT       = ' '

        EXCEPTIONS

          foreign_lock   = 1

          system_failure = 2

          OTHERS         = 3.

      IF sy-subrc <> 0.

        PERFORM check_lock.

      ENDIF.

 

 

      wa_lock-mandt = sy-mandt.

      wa_lock-proj = '1'.

      MODIFY zp6lock FROM wa.

 

 

      IF sy-subrc NE '0'.

        MESSAGE 'Retry! P6 is locked by anohter user' TYPE 'S'.

        LEAVE LIST-PROCESSING.

      ENDIF.

 

 

    ENDIF.

 

 

 

    PERFORM get_last_wbs_id. "Proxy Call to read

    PERFORM send_new_wbs_id. "Proxy Call to write

 

      CALL FUNCTION 'DEQUEUE_EZZP6LOCK'

        EXPORTING

          mode_zp6lock = 'X'

          mandt        = sy-mandt.

 

 

      wa_lock-mandt = sy-mandt.

      wa_lock-proj = space.

      MODIFY zp6lock FROM wa.

 

 

    ENDIF.


Viewing all articles
Browse latest Browse all 2812

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>