How to check program has already been executed
在有些情況下,Add-On 程式不能同時執行,這時則必需使用下面 Function 判斷程式是否已經有在執行,主要是透過產生 SM12 的 Lock Argument 的方式,確認目前執行時,沒有相同的 Lock Argument 存在
CALL FUNCTION 'ENQUEUE_ESINDX'
EXPORTING RELID = 'ZZ'
SRTFD = SY-CPROG
SRTF2 = 0
_SCOPE = '3'
EXCEPTIONS FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.
參數說明 :
RELID = 'ZZ' "Hard code
SRTFD = SY-CPROG "Enqueue 的參數2 - 目前執行的程式名稱
SRTF2 = 0 "Enqueue 的參數2 - 依情況決定是否使用,例如 0 已被 Lock, 則加 1,最多只能到 5 (表示同時只能執行五次此程式)
_SCOPE = '3' "請參考 SAP _SCOPE