防止程序重复执行
有的程序需要現(xiàn)在同一時間只能運(yùn)行一個,這種需求可以用鎖的方式來實(shí)現(xiàn),在START-OF-SELECTION?事件后加鎖,如果是加鎖成功,說明還沒有程序在執(zhí)行,如果是加鎖失敗,則說明已經(jīng)有同名程序在運(yùn)行,報錯即可。
注:這個鎖是借用程序修改的鎖,在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-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
"說明已經(jīng)有程序在運(yùn)行了。
??ENDIF.
總結(jié)
- 上一篇: 【转】排除被冲销的物料凭证
- 下一篇: 使用程序创建数据库表