點選藍字

關注我們

問題描述

期初庫存匯入的商品憑證,如果輸入的外部金額為0(EXBWR=0), 如果移動商品/地點的移動平均價不等於0,系統會自動使用移動平均價乘數量作為憑證的金額。 而不是使用外部金額EXBWR=0的值。這樣期初匯入的價值就不是我們期望的成本價值。

問題分析

SAP ERP軟體的標準邏輯 允許輸入外部金額, 但是如果外部金額為0, 系統視同為未輸入外部金額, 此時系統會自動獲取有效的成本單價*數量作為憑證的金額。

簡單解決辦法

一個最簡單的解決辦法是, 外部金額輸入一個很小的金額。 比如0。01 ,系統認為外部金額<>0, 就不會執行獲取成本價*數量的邏輯。

但是總會有人挑戰這個方案,認為系統不能有任何差異, 哪怕1分錢也不行.

問題分析(程式碼追蹤)

程式碼追蹤過程比較枯燥。建議直接跳過到後面一章

系統在

MM07MFM0_M_SEGMENTE_ERGAENZEN 139行左右執行了XMSEG-DMBTR的賦值 FORM M-SEGMENTE_ERGAENZEN

xmseg-dmbtr = yfbuz-dmbtr。

系統在 MM07MFF9_F_SEGMENTE_ERSTELLEN657行左右 新增內表YFBUZ。

MM07MFF9_F_SEGMENTE_ERZEUGEN208行左右 YFBUZ-DMBTR = XACCCR-WRBTR。

來自YACCCR[]

來自

XZCXCM[] MM07MFF9_F_SEGMENTE_BEWERTEN 51行左右。

LMBGBFSU 51行左右 xzcxcm-dmbtr = 。 來自 YCURTP[]

LMBGBFWR1529行左右 LOOP AT ycurtp。

LMBGBFWR 1324行左右 PERFORM wertesperrtab_fuellen USING mseg-matbf

LMBGBFWR 1664 行左右

/**/SPAN PERFORM (mseg-bustw) IN PROGRAM saplmbgb。 欄位 BESTD VERBR

LMBGBFAS 510 行左右

問題解決

在 LMBGBFAS FORM wert_bestand 結尾的位置修正 w-bestd 金額 w-verbr 成本 兩者如果不一致,計入差異

在 FORM WERT_BESTAND 開頭的位置,把w-exwob調整為X。 這樣後續處理的時候, 系統允許外部0價值處理商品憑證。欄位W-EXWOB的系統描述是,在貨幣轉換後,有可能會把金額轉換為0, 此時還是需要用0金額記賬,而不是獲取移動平均價。 符合561 期初0金額入賬的需求。

一個好的辦法是,設定一個配置表, 允許透過配置表開啟或者關閉這個增強功能,如圖的ZTBC009(可以透過移動型別配置這個開關)

問題解決之 期初庫存強制0金額記賬

問題解決之 期初庫存強制0金額記賬

THE

END

約定

如果你對這篇文章感興趣,請幫忙點贊,在看,分享。

如果你真的喜歡這篇文章,請記得回來打個賞,作為支援我繼續下去的動力,這是一個正反饋過程. 越多的人打賞,作者越有動力分享,讀者就能享受更多的福利.畢竟打賞的金額富不了我,窮不了你,卻能支援這個公眾號長久發文.

問題解決之 期初庫存強制0金額記賬

公眾號 : syjf1976_abap

ABAP開發技巧

微訊號 : 392077

公眾號主群加入受限, 請掃碼加入副群后,向管理員申請加入主群

問題解決之 期初庫存強制0金額記賬