日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

vsc提示只有一行_Solution:连续调用BAPI出错,以及BAPI提示成功但数据库没有数据...

發布時間:2024/10/6 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vsc提示只有一行_Solution:连续调用BAPI出错,以及BAPI提示成功但数据库没有数据... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:孫亮

聲明:本文章僅代表原作者觀點,僅用于SAP軟件的應用與學習,不代表SAP公司和本微信公眾號。注:文中所示截圖來源SAP軟件,相應著作權歸SAP所有。

在群里看大家交流技術問題,曾記下了一條筆記:用BAPI生成/修改PO/SO,然后緊接著使用BAPI_OUTB_DELIVERY_CREATE_STO/BAPI_OUTB_DELIVERY_CREATE_SLS來生成交貨單,就會出現很多莫名其妙的錯誤。原因是沒有清空函數的全局變量,暫時的解決方案可以用DESTINATION 'NONE'.【不要兩個都使用】。但這會觸發隱式提交哦。或者ASSIGN ('(SAPLME03)GET_EKET_DOC[]') TO .IF SY-SUBRC = 0. CLEAR . ENDIF.之前沒有遇到相關的業務需求,也就只是記了條筆記丟在筆記庫里了。然而今天遇到了相應的業務場景,出現的問題卻不止一個……
這邊的需求是先對采購訂單收貨,然后去創建交貨單。我先調用了BAPI_GOODSMVT_CREATE收貨,然后調用BAPI_OUTB_DELIVERY_CREATE_SLS創建交貨單。結果對于全新的物料,創建交貨單的時候有個警告消息,說沒有物料在相關工廠相關庫存地點的數據。可是這時候通過MMBE去查物料庫存,明明是有數據的。于是猜到這應該是SAP有些內表的緩存沒有被清理的原因。之后調整代碼,調用交貨單BAPI時,加上了DESTINATION 'NONE'。再次執行,第二個問題出現了,BAPI提示交貨單創建成功,警告消息沒了,但執行完COMMIT之后,數據庫里并沒有這一行交貨單的數據。接下來,給大家分享我是如何去分析和解決問題的。
我的問題里,BAPI提示成功,但數據庫沒有數據。問題可能出現在兩個地方:1、BAPI的消息出錯了;2、COMMIT WORK沒有執行。我也稍稍懷疑了一下第一條,但立刻否定了自己的懷疑,BAPI返回的消息如果經常出錯,網上肯定很多反映和討論這個問題的。那就只能是第二條,COMMIT WORK沒有執行。我看了一下代碼,里面明確寫著CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'呀,并且傳遞了wait = 'X'的參數。再等幾秒看看?于是等了一會,數據庫里還是沒有。MMP,SAP不講武德啊!糾結了一小下,還是讓自己鎮定下來思考最根本的問題:BAPI是如何提交數據到數據庫的?想一下BAPI的結構,BAPI里的代碼可以分為這樣兩部分:1、一部分是數據校核,檢查傳入的數據是否滿足創建相關業務對象的條件,并且把錯誤消息反饋出來;2、另一部分是更新數據庫,即UPDATE/INSERT/DELETE dbtab這樣的操作。而第二部分的代碼,一般是寫在一個form里或者一個function里。而且這些form或者function一般是這樣被調用的:perform save_data on commit.call function 'SAVE_DATA' in update task.回頭再看一下程序,我寫了COMMIT WORK的呀。哦,難道是因為我在調用交貨單BAPI時,加了DESTINATION,但是調用BAPI_TRANSACTION_COMMIT時并沒有加DESTINATION!是不是這個原因呢?立刻改掉代碼再試一次,果然成功了。所以在調用BAPI是如果加了DESTINATION,也需要在調用BAPI_TRANSACTION_COMMIT時加上DESTINATION。
其實今天的這個小解決方案,大家可能并不會太用到。但我覺得我解決這個問題的過程和思路,或許可以給一些朋友提供一些參考和借鑒。即:1、你要盡量儲備一些基礎知識;2、你要有好奇心去深入深入再深入的研究你經常使用的東西3、你要鎮定下來像破案一樣去排除所有不可能的因素,最后的結果就是:真相只有一個!

分享是一種精神

總結

以上是生活随笔為你收集整理的vsc提示只有一行_Solution:连续调用BAPI出错,以及BAPI提示成功但数据库没有数据...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。