TYPE-POOLS:abap.
DATA:lock TYPE boolean.
PARAMETERS: pa_chr TYPE char12.
INITIALIZATION.
IF lock = abap_off.
PERFORM enqueue_program.
ELSE.
PERFORM dequeue_program.
ENDIF.
START-OF-SELECTION.
WRITE :/ 'Processing Starts'.
WRITE :/ 'Program locked'.
WRITE :/ 'This program will not be allowed to be executed by multiple'.
WRITE :/ 'Users in the same time'.
FORM enqueue_program .
CALL FUNCTION 'ENQUEUE_E_DSVAS_TRDIR'
EXPORTING
mode_trdir = 'X'
name = sy-repid
x_name = ' '
_scope = '2'
_wait = ' '
_collect = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
lock = abap_on.
ENDIF.
ENDFORM. " ENQUEUE_PROGRAM
FORM dequeue_program .
lock = abap_off.
CALL FUNCTION 'DEQUEUE_E_DSVAS_TRDIR'
EXPORTING
mode_trdir = 'X'
name = sy-repid
x_name = ' '
_scope = '3'
_synchron = ' '
_collect = ' '.
ENDFORM. " DEQUEUE_PROGRAM
Search This Blog
Thursday, October 22, 2015
Lock program or bogus object prevent program from running multiple times simultaneously E_DSVAS_TRDIR
Labels:
dequeue,
E_DSVAS_TRDIR,
enqueue,
lock
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment