Abap 以编程方式更改物料主数据(MM02)中的平均价格
我想以编程方式更改以下特殊情况下材料的移动/平均价格:Abap 以编程方式更改物料主数据(MM02)中的平均价格,abap,bapi,sap-erp,function-module,Abap,Bapi,Sap Erp,Function Module,我想以编程方式更改以下特殊情况下材料的移动/平均价格: VPRSV = 'S' (Standard price) MLMAA = 'X' (Material Ledger activated) MLAST = '3' (Material Price Determination = '3' (Single-/Multilevel)) period = current 当当前期间已存在给定物料的物料文档时,它必须工作。我需要的所有其他特殊情况都解决了 我正在搜索与使用MM02而不是MR21更
VPRSV = 'S' (Standard price)
MLMAA = 'X' (Material Ledger activated)
MLAST = '3' (Material Price Determination = '3' (Single-/Multilevel))
period = current
当当前期间已存在给定物料的物料文档时,它必须工作。我需要的所有其他特殊情况都解决了
我正在搜索与使用MM02
而不是MR21
更改移动平均价格相当的功能模块
也许我要搜索的是BAPI\u MATVAL\u PRICE\u CHANGE
让我困惑的是,我找不到一个参数来确定我想要改变的是移动平均价格,而不是标准价格。我遗漏了一个参数吗?如果没有,它会改变标准价格还是移动平均价格
我不确定这个功能模块是否等同于
MM02
或MR21
不,没有这样的功能模块。但是,您可以使用Bapi Bapi_MATVAL_PRICE_CHANGE将价格差异过账到ML。使用此功能,您可以将价格调整到所需的值。您应该使用Bapi_MATERY_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
.
也许这是您需求的替代方案?您能检查一下吗?嗨,Nelson,此代码更改了标准价格,我需要更改移动平均价格,尽管
VPRSV='S'
谢谢。当VPRSV='S'
时,是否BAPI\u MATVAL\u PRICE\u改变移动平均线?如果价格控制是标准价格,则移动平均线没有相关性。BAPI_材料_价格_变化等同于交易MR22。但老实说,我认为你应该联系一位经验丰富的材料分类账顾问。我认为您试图做一些系统绝对不支持的事情(另请参见您关于交易CKMM的问题)。在最坏的情况下,您将创建不可修复的不一致。