1

我想以编程方式更改以下特殊情况下材料的移动/平均价格:

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

当本期已有给定物料的物料单据时,它必须起作用。我需要的所有其他特殊情况都已解决。

我正在寻找相当于使用MM02, not更改移动平均价格的功能模块MR21

也许BAPI_MATVAL_PRICE_CHANGE是我正在寻找的东西?

令我困惑的是,我找不到一个参数来确定我要更改移动平均价格而不是标准价格。我错过了一个参数吗?如果不是,它会改变标准价格还是移动平均价格?

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

4

2 回答 2

1

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

于 2016-08-16T04:35:23.977 回答
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
.
于 2016-10-17T16:09:35.470 回答