BAPI_INCOMINGINVOICE_CREATE1連續多張發票校驗時,系統DUMP問題解決過程


問題描述:每次創建一張發票時,利用BAPI_INCOMINGINVOICE_CREATE1是可以的,一次創建多張發票時,第一張發票可以創建成功,創建第二張發票時系統直接DUMP。

系統錯誤關鍵描述:"UNCAUGHT_EXCEPTION" /BOBF/CX_FRW_FATAL
                                "/BOBF/CL_TRA_TRANSACTION_MGR==CP" bzw. /BOBF/CL_TRA_TRANSACTION_MGR==CM00K
                                "SET_APPLICATION_ERROR"

查了N多NOTES,沒有相匹配的解決方案,沒辦法只能跟蹤系統標准代碼。跟蹤系統代碼涉及到的標准對象如下:

BAPI:BAPI_INCOMINGINVOICE_CREATE1,FM:MRM_INVOICE_POST,CLASS:/BOBF/CL_TRA_TRANSACTION_MGR,/BOBF/CL_TRA_TRANS_MGR_FACTORY

解決方法:創建發票的過程中類/BOBF/CL_TRA_TRANSACTION_MGR的屬性mv_transaction_state會依次從0更新到6,具體0~6的意思可查看參考的數據元素。依次更新的過程

中的系統會依次調用Method:finalize,check_before_save,adjust_numbers,do_save等等來出來數據。0~6的次序不可顛倒,也就是說類的方法調用次序不能顛倒,否則系統就會DUMP。

第一次創建時,系統會初始化類,mv_transaction_state的值默認為‘0’,第二次調用時,系統不會再次初始化類,屬性mv_transaction_state的值是‘6’,這時系統就會DUMP。

為了每次調用使類的方法依次執行,不得不對系統做了隱式增強(被逼的,想不到其他好的辦法了)。增強的位置如圖:

注意:對BOBF相關的類做增強時,要十分的小心!!!一定要加限制條件,否則對系統的影響特別大。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM