Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/debugging/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abap 以编程方式更改物料主数据(MM02)中的平均价格_Abap_Bapi_Sap Erp_Function Module - Fatal编程技术网

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的问题)。在最坏的情况下,您将创建不可修复的不一致。