貨物移動BAPI:BAPI_GOODSMVT_CREATE報錯提示“不能執行功能模塊 MB_CREATE_GOODS_MOVEMENT”的原因


在開發過程中,我們調用BAPI:BAPI_GOODSMVT_CREATE進行貨物移動生成物料憑證時,出現了報錯提示:“不能執行功能模塊 MB_CREATE_GOODS_MOVEMENT”,如下圖所示:
  但也許我們通過調試,將傳入BAPI的參數放到SE37中,直接使用該BAPI進行測試的時候,卻能正常產生憑證,並不會出現上面的提示。於是我們又花了很多時間,逐個去核對傳入的參數什么的有沒有問題,去SAP官網查找對應的報錯NOTE甚至懷疑是不是業務配置的問題。。。
  其實這個問題的原因並不復雜,我們點開上面報錯圖中的“幫助”按鈕,就可以看到問題的原因了,如下2圖所示:
 
 
  從上圖大概可以看出,是因為程序在調用函數 MB_CREATE_GOODS_MOVEMENT時,重復調用了該函數,且上一次調用的時候,沒有進行提交(COMMIT WORK),才導致的。
  那么新的問題似乎來了,我們並沒有直接調用 MB_CREATE_GOODS_MOVEMENT這個函數,為什么出現這個提示呢?其實這個問題不能理解,因為我們調用的貨物移動BAPI:BAPI_GOODSMVT_CREATE的代碼中調用了函數MB_CREATE_GOODS_MOVEMENT,如下圖所示:
 
  再聯想到本次開發的需求,用戶要求同時執行多個貨物移動,當所有的貨物移動都沒有報錯的時候,再統一提交或者回滾。正好就驗證了本次報錯的原因,多次間接調用函數MB_CREATE_GOODS_MOVEMENT,而沒有在每次調用后進行提交導致。
  至於要如何實現同時實現多個貨物移動的統一提交和回滾,則不在本文討論之中。


免責聲明!

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



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