Программное изменение средней цены в основных записях материалов (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?

Что меня смущает, так это то, что я не могу найти параметр, определяющий, что я хочу изменить скользящую среднюю цену, а не стандартную цену. Я пропустил параметр? Если нет, изменяет ли это стандартную цену или скользящую среднюю цену?

И я не уверен, является ли этот функциональный модуль эквивалентом MM02 или MR21.


person Gerd Castan    schedule 15.08.2016    source источник
comment
Возможно, это альтернатива вашим требованиям. Вы можете проверить это ссылка?   -  person Nelson Miranda    schedule 15.08.2016
comment
Привет, Нельсон, этот код изменяет стандартную цену, мне нужно изменить среднюю скользящую цену, хотя VPRSV = 'S'   -  person Gerd Castan    schedule 16.08.2016


Ответы (2)


нет, такого функционального модуля нет. Но вы можете использовать Bapi BAPI_MATVAL_PRICE_CHANGE для проводки разницы в цене в ML. При этом вы можете скорректировать свою цену до значения, которое вы хотите.

person Tapio Reisinger    schedule 16.08.2016
comment
Спасибо. Изменяет ли BAPI_MATVAL_PRICE_CHANGE скользящее среднее, когда VPRSV = 'S'? - person Gerd Castan; 16.08.2016
comment
Если контроль над ценой является стандартной ценой, то скользящая средняя не имеет значения. BAPI_MATVAL_PRICE_CHANGE является эквивалентом транзакции MR22. Но, честно говоря, я думаю, вам следует обратиться к опытному консультанту по Material Ledger. Я думаю, вы пытаетесь делать вещи, которые определенно не поддерживаются системой (см. также ваш вопрос, связанный с транзакцией CKMM). В худшем случае вы создадите неустранимые несоответствия. - person Tapio Reisinger; 17.08.2016

Вы должны использовать 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
.
person Suncatcher    schedule 17.10.2016