2016-08-15 83 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 
.