ABAP 防止程式重複執行

2021-10-02 20:31:28 字數 647 閱讀 5640

有的程式需要現在同一時間只能執行乙個,這種需求可以用鎖的方式來實現,在start-of-selection 事件後加鎖,如果是加鎖成功,說明還沒有程式在執行,如果是加鎖失敗,則說明已經有同名程式在執行,報錯即可。

注:這個鎖是借用程式修改的鎖,在se38修改程式的時候也會加這個鎖。

程式如下:

start-of-selection.

call function 'enqueue_esrdire'

exporting

name           = sy-repid

_scope         = '1'

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-ms**1 sy-ms**2 sy-ms**3 sy-ms**4.

"說明已經有程式在執行了。

endif.

防止程式被重複執行

防止程式被重複執行 第一法 windows95的程式一般都可以重複執行,例如你按下win e組合鍵即啟動資 源管理器,如果再按win e組合鍵又會出現乙個資源管理器,這兩個程式互不幹 擾。有時候你可以需要製作這樣乙個程式 當該程式已經執行時,若使用者企圖 再次執行該程式則只會啟用那個已執行的程式,而...

winform程式防止重複執行

用互斥法實現防止程式重複執行,使用核心物件mutex可以防止同乙個程序執行兩次。注意 是名稱相同的程序,而不是exe,因為exe程式可以改名。在program.cs中修改 首先新增using system.threading 引用 然後原內容改為下面所示 static class program 互...

防止程式重複執行的單元

防止程式重複執行的單元 工程引用此單元就能防止同時出現多個例項 unitmultinst inte ce uses windows messages,sysutils,classes,forms implementation const str unique mi gethandle 2 var i...