2016-08-15 49 views
1

我想以编程方式更改的材料移动/平均价(S)以下特殊情况下更改平均价格:在物料主数据(MM02)编程

VPRSV = 'S' (Standard price) 
MLMAA = 'X' (Material Ledger activated) 
MLAST = '3' (Material Price Determination = '3' (Single-/Multilevel)) 
period = current 

它的时候已经有一个工作当前期间给定材料的重要文件。我需要的所有其他特殊情况都已解决。

我在寻找相当于使用MM02而不是MR21更改移动平均价格的功能模块。

也许BAPI_MATVAL_PRICE_CHANGE是我在寻找什么?

令我困惑的是,我无法找到一个参数,它决定了我想更改移动平均价格而不是标准价格。我错过了一个参数吗?如果不是,它是否会改变标准价格或移动平均价格?

而且我不确定这个功能模块是否相当于MM02MR21

+0

也许这是你的要求¿您可以检查此[链接](https://wiki.scn.sap.com/wiki替代/显示/ ERPMan /更改+ AS + + +材料的价格+ + +在使用MR21 +功能+模块)+? –

+0

嗨尼尔森,这个代码改变了标准价格,我需要改变移动平均价格,虽然'VPRSV ='S'' –

回答

1

不,没有这样的功能模块。但是,您可以使用BAPI BAPI_MATVAL_PRICE_CHANGE向ML发布价格差异。有了这个,你可以调整你的价格到你想要的价值。

+0

谢谢。 'VPRSV ='S''时,BAPI_MATVAL_PRICE_CHANGE是否改变移动平均值? –

+0

如果价格控制是标准价格比移动平均没有相关性。 BAPI_MATVAL_PRICE_CHANGE是交易MR22的等价物。但说实话,我认为你应该联系一位经验丰富的Material Ledger顾问。我认为你会尝试做一些系统绝对不支持的事情(另请参阅与交易CKMM有关的问题)。在最坏的情况下,您将创建不可修复的不一致性。 –

1

您应该使用BAPI_MATERIAL_SAVEDATA来做到这一点。一些强制性的结构应填写为均价的成功更新:

HEADDATA-MATERIAL  = P_MATNR. "material number 

HEADDATA-ACCOUNT_VIEW = 'X'. 

VALDATA-VAL_AREA   = P_BWKEY. "valuation area 

VALDATA-VAL_TYPE   = P_BWTAR. "valuation type 

VALDATA-MOVING_PR  = P_STPRS. "new value of moving price 

VALDATAX-VAL_AREA  = P_BWKEY. "valuation area for tax accounting 

VALDATAX-VAL_TYPE  = P_BWTAR. "valuation type for tax accounting 

VALDATAX-MOVING_PR  = 'X'. "update indicator 

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' 
EXPORTING 
    HEADDATA = HEADDATA 
    VALUATIONDATA = VALDATA 
    VALUATIONDATAX = VALDATAX 

IMPORTING 
    RETURN = BAPI_RETURN 
TABLES 
MATERIALDESCRIPTION = INT_MAKT 
.