Создаю материал при помощи bapi BAPI_MATERIAL_SAVEDATA. Все работает нормально, если не указывать вид оценки. Если его указать, бапишка начинает ругаться на то, что необходимо сначала указать все данные для вида оценки. Подскажите, пожалуйста, какой бапи можно расширить материал на вид оценки?
Вот мой код, может еще какие-то данные необходимо указывать?
Code:
***********************************
clear: wa_BAPIMATHEAD,
wa_BAPI_MARA, wa_BAPI_MARAX,
wa_BAPI_MARC, wa_BAPI_MARCX,
wa_BAPI_MBEW, wa_BAPI_MBEW.
wa_BAPIMATHEAD-MATERIAL = wa_mat-mat_num.
wa_BAPIMATHEAD-MATL_TYPE = wa_mat-vid_mat.
wa_BAPIMATHEAD-IND_SECTOR = wa_mat-sector.
wa_BAPIMATHEAD-BASIC_VIEW = 'X'.
wa_BAPIMATHEAD-PURCHASE_VIEW = 'X'.
wa_BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
* Client Data - Basic
wa_BAPI_MARA-MATL_GROUP = wa_mat-mat_group.
wa_BAPI_MARA-BASE_UOM = wa_mat-base_unit.
wa_BAPI_MARA-DIVISION = wa_mat-division.
wa_BAPI_MARAX-MATL_GROUP = 'X'.
wa_BAPI_MARAX-BASE_UOM = 'X'.
wa_BAPI_MARAX-DIVISION = 'X'.
** Plant - Purchasing
wa_BAPI_MARC-PLANT = wa_mat-werks.
wa_BAPI_MARC-PUR_GROUP = wa_mat-ekgrp.
wa_BAPI_MARCX-PLANT = wa_mat-werks.
wa_BAPI_MARCX-PUR_GROUP = 'X'.
** Accounting
wa_BAPI_MBEW-VAL_CLASS = wa_mat-bklas.
wa_BAPI_MBEW-VAL_AREA = wa_mat-werks.
wa_BAPI_MBEW-PRICE_CTRL = wa_mat-price_kod.
if wa_mat-price_kod = 'S'.
wa_BAPI_MBEW-STD_PRICE = wa_mat-price_s.
else.
wa_BAPI_MBEW-MOVING_PR = wa_mat-price_v.
endif.
wa_BAPI_MBEW-VAL_TYPE = wa_mat-val_type.
wa_BAPI_MBEW-VAL_CAT = wa_mat-val_cat.
wa_BAPI_MBEW-ML_SETTLE = '1'.
wa_BAPI_MBEWX-VAL_CLASS = 'X'.
wa_BAPI_MBEWX-VAL_AREA = wa_mat-werks.
wa_BAPI_MBEWX-PRICE_CTRL = 'X'.
wa_BAPI_MBEWX-STD_PRICE = 'X'.
wa_BAPI_MBEWX-MOVING_PR = 'X'.
wa_BAPI_MBEWX-ML_SETTLE = 'X'.
wa_BAPI_MBEWX-VAL_TYPE = wa_mat-val_type.
wa_BAPI_MBEWX-VAL_CAT = 'X'.
refresh ret.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
exporting
HEADDATA = wa_BAPIMATHEAD
CLIENTDATA = wa_BAPI_MARA
CLIENTDATAX = wa_BAPI_MARAX
PLANTDATA = wa_BAPI_MARC
PLANTDATAX = wa_BAPI_MARCX
VALUATIONDATA = wa_BAPI_MBEW
VALUATIONDATAX = wa_BAPI_MBEWX
importing
return = ret
tables
MATERIALDESCRIPTION = t_MATERIALDESCRIPTION
MATERIALLONGTEXT = t_MATERIALLONGTEXT
UNITSOFMEASURE = t_UNITSOFMEASURE
UNITSOFMEASUREX = t_UNITSOFMEASUREX.
is_err = ''.
loop at ret where type = 'E'.
is_err = 'X'.
endloop.
if is_err = ''.
commit work and wait.
else.
rollback work.
concatenate 'Не удалось создать материал "' wa_MATERIALDESCRIPTION-MATL_DESC '".' into msg_text separated by space.
MESSAGE msg_text TYPE 'I'.
endif.
Нашел, что эта тема уже обсуждалась тут
http://sapboard.ru/forum/viewtopic.php?p=43373#43373 и вот тут
http://sapboard.ru/forum/viewtopic.php?f=13&t=32361. Но так и не понял, можно ли обойтись одной бапишкой BAPI_MATERIAL_SAVEDATA, либо есть ли какая-то отдельная, чтоб создать расширение?