MIR6校驗時移動平均價為負的原因及解決
- 2019 年 10 月 4 日
- 筆記
問題:在做發票校驗(MIRO)時,出現移動平均價(MAP)為負的錯誤(Moving average price for material is negative)

原因:發票校驗價值(IV Value)與收貨價值(GR Value)出現差異,而且IV Value-GR Value>Stock Value,因此造成移動平均價為負。該錯誤僅發生在Price Control為V的情況下。
下面我們來看一下會造成這種錯誤的業務場景。
Scenario 1
Step1,以10EUR/EA的價格,訂購10EA,並且收貨(GR)。 Step2,以50EUR/EA的價格,訂購10EA,並且收貨(GR)。 Step3,向成本中心發貨10EA(GI)。 Step4,對上述兩張訂單做發票校驗(IV)。
發票校驗(IV)時會產生移動平均價(MAP)為負的錯誤。下圖為Step1-Step4該物料庫存價值(Stock Value)及移動平均價(MAP)的變化情況。

由下圖IV Simulation的結果可以看到,此時系統需要Post的差異總額為400。而Stock Value只有300,因此出現移動平均價(MAP)為負。

上述場景描述了移動平均價(MAP)下,IV產生價 格差異時SAP的一種過賬邏輯。實際上根據Stock Qty是否可以覆蓋IV Qty,SAP對差異的處理方式是不同的,上邊是第一種情況(Stock Qty>=IV Qty),下邊來看看第二種情況(Stock Qty
Scenario 2
Step5,向成本中心發貨5EA(GI)。
下圖為Step5該物料庫存價值(Stock Value)及移動平均價(MAP)的變化情況。

來看一下此時發票校驗的Simulation結果。

從上圖可以看到,400的價格差異被份成了兩部分, 一部分過賬到庫存賬戶(Stock Account),一部分過賬到價格差異賬戶(Price Difference Account),這就是SAP在價格控制為移動平均價(MAP)且Stock Qty
兩種過賬邏輯總結如下:

明白了產生Error的原因,解決方法也就明白了。既然是由於價格差異額大於庫存金額(Price Difference Amount>Stock Value),那麼基本上兩種解決方案:
1,縮小Price Difference Amount:在這個例子中就是要求供應商更改發票,將第二個訂單4500000062的價格由10EUR/EA調整到50EUR/EA (不一定非得調整到差異為零,只要調整發票價格使得Price Difference Amount<=Stock Value就行)。
* 理論上來講這是一個可行方案,但實際上怎麼看都不靠譜,要求供應商漲價這種事,普通公司和文藝公司基本都干不出來。
2,調整Stock Value使得Price Difference Amount<=Stock Value
2.1,T-code:MR22調整庫存價值。那麼 需要調整的金額是多少呢?計算方法為,IV Simulation中需要過賬到Stock Account的金額減去現有的Stock Value,因此Scenario1下需要調整的金額為400-300=100;Scenario2下需要調整的金額為200-150=50,由於目前的 Stock Value為150,我們採取Scenario2的調整方案。

調整好之後就可以去重新做發票校驗了。
