FUNCTION ENQUEUE_EZSDS0001.
*"--------------------------------------------------------------------
*"*"區域介面:
*" IMPORTING
*" VALUE(MODE_ZSDS0001) TYPE ENQMODE DEFAULT 'E'
*" VALUE(MANDT) TYPE ZSDS0001-MANDT DEFAULT SY-MANDT
*" VALUE(VTWEG) TYPE ZSDS0001-VTWEG OPTIONAL
*" VALUE(KUNNR) TYPE ZSDS0001-KUNNR OPTIONAL
*" VALUE(X_VTWEG) DEFAULT SPACE
*" VALUE(X_KUNNR) DEFAULT SPACE
*" VALUE(_SCOPE) DEFAULT '2'
*" VALUE(_WAIT) DEFAULT SPACE
*" VALUE(_COLLECT) TYPE DDENQCOLL DEFAULT ' '
*" EXCEPTIONS
*" FOREIGN_LOCK
*" SYSTEM_FAILURE
*"--------------------------------------------------------------------
* 加鎖物件 EZSDS0001 所產生的功能模組:
* 請勿修改或複製此功能模組
* 請參閱對 SAP 加鎖概念資訊的 ABAP 輔助說明
* 針對關鍵字 'ENQUEUE'
DATA: __seqta_tab TYPE SEQTA OCCURS 01 WITH HEADER LINE,
__scope TYPE DDENQSCOPE,
__wait TYPE DDENQWAIT.
__wait = _wait.
__scope = _scope.
DATA: BEGIN OF %a_ZSDS0001,
* 表格 ZSDS0001 的加鎖參數
MANDT TYPE ZSDS0001-MANDT,
VTWEG TYPE ZSDS0001-VTWEG,
KUNNR TYPE ZSDS0001-KUNNR,
END OF %a_ZSDS0001.
* 加鎖引數初始設定:
CALL 'C_ENQ_WILDCARD' ID 'HEX0' FIELD %a_ZSDS0001.
* 指派加鎖參數至加鎖欄位:
IF NOT MANDT IS INITIAL.
MOVE MANDT TO:
%a_ZSDS0001-MANDT.
ENDIF.
IF NOT VTWEG IS INITIAL OR
NOT x_VTWEG IS INITIAL.
MOVE VTWEG TO:
%a_ZSDS0001-VTWEG.
ENDIF.
IF NOT KUNNR IS INITIAL OR
NOT x_KUNNR IS INITIAL.
MOVE KUNNR TO:
%a_ZSDS0001-KUNNR.
ENDIF.
* 填寫加鎖表格:
__seqta_tab-gname = 'ZSDS0001'.
__seqta_tab-gmode = MODE_ZSDS0001.
__seqta_tab-garg = %a_ZSDS0001.
APPEND __seqta_tab.
* 已指派加鎖:
PERFORM send_enqueue(saplsena)
TABLES __seqta_tab
USING '1' __scope __wait ' ' 'EZSDS0001' _collect.
ENDFUNCTION.
FORM lock_data .
CALL FUNCTION 'ENQUEUE_EZSDS0001'
EXPORTING
* MODE_ZSDS0001 = 'E'
* MANDT = SY-MANDT
vtweg = zsdt0001-vtweg
kunnr = zsdt0001-kunnr
* X_VKORG = ' '
* X_VTWEG = ' '
* X_KUNNR = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE 'Lock資料錯誤' TYPE 'E'.
ENDIF.
ENDFORM.