【ABAP】SAP判断单据是否被锁定
生活随笔
收集整理的這篇文章主要介紹了
【ABAP】SAP判断单据是否被锁定
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SAP判斷單據是否被鎖定
通常要是某個SAP單據被其他用戶正在處理,我們進入時會有如下提示:
?要是在開啟遠程模塊的函數中碰到這樣的問題會提示給出Dump信息,非常不友善,那么能否在處理單據之前判定該單據是否被鎖定呢?
起初我是通過下面的例子進行處理的,直接上源碼。
DATA : LT_ENQ LIKE TABLE OF SEQG7 WITH HEADER LINE .DATA : LV_GARG TYPE EQEGRAARG.LV_GARG = SY-MANDT && VBELN.CALL FUNCTION 'ENQUE_READ2'EXPORTINGGCLIENT = SY-MANDTGNAME = 'LIKP' * GARG = ' ' * GUNAME = SY-UNAME * OPCODE2 = 1 * IMPORTING * NUMBER = * SUBRC =TABLESENQ = LT_ENQ.IF LT_ENQ[] IS NOT INITIAL.READ TABLE LT_ENQ WITH KEY GARG = LV_GARG.IF SY-SUBRC = 0 .EX_VBELN = VBELN.ERROR = 'E'.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = 'VL'MSGNR = '046'MSGV1 = VBELNMSGV2 = LT_ENQ-GUNAME * MSGV3 = ' ' * MSGV4 = ' 'IMPORTINGMESSAGE_TEXT_OUTPUT = MSAGE.EXIT.ENDIF.ENDIF.上面的代碼可以適用于一般情況,但是某些時候仍會報“SYSTEM_FAILURE”的錯誤,讓人實難捉摸不透。
下面是改良后的代碼,暫時未作測試,但是拋出了上面的異常信息,待后續(xù)反饋后更新。
"判斷是否被鎖定CALL FUNCTION 'ENQUEUE_EVVBLKE'EXPORTINGMODE_LIKP = 'V'MANDT = SY-MANDTVBELN = VBELNEXCEPTIONSFOREIGN_LOCK = 1SYSTEM_FAILURE = 2OTHERS = 3.IF SY-SUBRC <> 0.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = 'VL'MSGNR = '046'MSGV1 = VBELNMSGV2 = SY-MSGV1 * MSGV3 = ' ' * MSGV4 = ' 'IMPORTINGMESSAGE_TEXT_OUTPUT = MSAGE.ERROR = 'E'.EXIT.ENDIF.?
?
總結
以上是生活随笔為你收集整理的【ABAP】SAP判断单据是否被锁定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】利用Excel实现简易版大屏
- 下一篇: 【学习笔记】2、Python - Jup