LOCK 상태인지 체크 후, ENQUEUE 실행
(프로그램 중간에 나가도 자동으로 DEQUEUE된다)
REPORT ZLOCKTEST.
DATA : lt_locks TYPE TABLE OF seqg3,
wa_lock TYPE seqg3,
lv_name TYPE seqg3-gname,
lv_args TYPE seqg3-garg,
lv_argname TYPE char40.
DATA lv_who TYPE string.
lv_name = 'TRDIR'.
lv_args = 'ZTT'. "PROGRAM
lv_argname = 'ZTT'. "PROGRAM
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
gname = lv_name
garg = lv_args
guname = sy-uname
TABLES
enq = lt_locks
EXCEPTIONS
communication_failure = 1
system_failure = 2
OTHERS = 3.
READ TABLE lt_locks INTO wa_lock INDEX 1.
CHECK sy-subrc NE 0.
CALL FUNCTION 'ENQUEUE_E_TRDIR'
EXPORTING
mode_trdir = 'E'
name = lv_argname
* name = sy-repid
x_name = ' '
_scope = '3'
_wait = ' '
_collect = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CALL FUNCTION 'DEQUEUE_E_TRDIR'
EXPORTING
mode_trdir = 'E'
name = sy-repid
x_name = ' '
_scope = '3'
_synchron = ' '
_collect = ' '.