问题:在做发票校验(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的调整方案。
调整好之后就可以去重新做发票校验了。