источник
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bapi-mr21-2581751---
Перед использованием
BAPI_MATVAL_PRICE_CHANGE вводим номера заводов в прозрачную таблицу
CKML_PRICE_SEND -
Настройка отправки цены материалаПример кода (система mySAP / Retail/ SAP ECC 6.0 )
// Извините, если коряво, зато работает
Code:
PERFORM extend_material
USING gs_alv0200-matnr
gs_alv0200-werks
'НАЙДЕННЫЕ'.
*&------------------------------------------------------------*
* // USE BAPI_MATVAL_PRICE_CHANGE
*&------------------------------------------------------------*
FORM extend_material USING
P_IT_MARC_MATNR TYPE marc-matnr
P_IT_MARC_WERKS TYPE marc-werks
BWTAR_ TYPE MBEW-BWTAR.
DATA:
i_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
i_PRICECHANGEDOCUMENT TYPE BAPI_PRICECHANGE_DOCUMENT,
i_PRICES LIKE BAPI_MATVAL_PRICES OCCURS 0 WITH HEADER LINE,
i_PRICEDATE TYPE BAPI_MATVAL_PRICEDATE OCCURS 0 WITH HEADER LINE.
DATA: VERPR_ LIKE MBEW-VERPR.
CLEAR: VERPR_.
SELECT SINGLE VERPR INTO VERPR_
FROM MBEW
WHERE MATNR EQ P_IT_MARC_MATNR
AND BWKEY EQ P_IT_MARC_WERKS "--------- Проверка средне-скользящей цены на заводе / филиале
AND BWTAR EQ ' '
AND VERPR > 0.
IF VERPR_ IS INITIAL.
SELECT SINGLE VERPR INTO VERPR_
FROM MBEW
WHERE MATNR EQ P_IT_MARC_MATNR
AND BWKEY EQ '9100' "--------- Проверка средне-скользящей цены на РЦ
AND BWTAR EQ ' '
AND VERPR > 0.
ENDIF.
if VERPR_ IS NOT INITIAL.
REFRESH: i_PRICES, i_RETURN.
CLEAR: i_PRICES, i_RETURN, i_PRICEDATE.
i_PRICES-PRICE = VERPR_.
i_PRICES-CURR_TYPE = '10'. " 10 Валюта БЕ
i_PRICES-PRICE_UNIT = '1'.
i_PRICES-CURRENCY = 'RUB'.
APPEND i_PRICES.
i_PRICEDATE-PRICE_DATE = sy-datum.
APPEND i_PRICEDATE.
CALL FUNCTION 'BAPI_MATVAL_PRICE_CHANGE'
EXPORTING
MATERIAL = P_IT_MARC_MATNR
VALUATIONAREA = P_IT_MARC_WERKS " Номер завода
VALUATIONTYPE = BWTAR_ " Вид оценки
PRICEDATE = i_PRICEDATE
IMPORTING
PRICECHANGEDOCUMENT = i_PRICECHANGEDOCUMENT
TABLES
PRICES = i_PRICES
RETURN = i_RETURN
.
IF i_RETURN IS INITIAL.
CLEAR gs_return.
gs_return-type = 'S'.
gs_return-id = '00'.
gs_return-number = '368'.
CONCATENATE 'переоценка по излишку: вид оценки' BWTAR_
INTO gs_return-message_v1 SEPARATED BY space.
CONCATENATE 'Товар' P_IT_MARC_MATNR
', завод' P_IT_MARC_WERKS
INTO gs_return-message_v2 SEPARATED BY space.
APPEND gs_return TO gt_return.
ENDIF.
APPEND LINES OF i_RETURN TO gt_return.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
ENDIF.
ENDFORM.