Добрый день!
Возникла задача проапдейтить стандартную саповскую таблицу MARA,
в которую было добавлено поле ZZF1 ( с помощью append-структуры ).
Поле ZZF1 ( тип char1 ).
Для апдейта использую BAPI -- BAPI_MATERIAL_SAVEDATA.
Шаги, которые предпринял для решения проблемы:
1) добавляю в структуру BAPI_TE_MARA поле ZZF1 (аппендом), тоже самое делаю для структуры BAPI_TE_MARAX ( поле ZZF1 ссылается на компонент BAPIUPDATE )
дальше представляю код:
" суть учебной программы: выбирая какой-либо материал (matnr) и нажимая на кнопочку выполнить, в сustom-поле устанавливаем значение 'X'.
DATA :
lwa_extensionin TYPE bapiparex,
lwa_extensioninx TYPE bapiparexx,
lt_extensionin TYPE STANDARD TABLE OF bapiparex,
lt_extensioninx TYPE STANDARD TABLE OF bapiparexx.
DATA: lt_bapi_te_mara type table of bapi_te_mara,
lwa_bapi_te_mara type bapi_te_mara,
lt_bapi_te_marax type table of bapi_te_marax,
lwa_bapi_te_marax type bapi_te_marax.
DATA: wa_headdata TYPE bapimathead.
PARAMETERS: p_matnr TYPE matnr. " материал
START-OF-SELECTION.
" populate BAPI-structure
lwa_bapi_te_mara-material = p_matnr.
lwa_bapi_te_mara-zzf1 = 'X'.
MOVE 'BAPI_TE_MARA' TO lwa_extensionin-structure. "Extension structure name
lwa_extensionin-valuepart1+0(10) = lwa_bapi_te_mara-material. " pass value of material
lwa_extensionin-valuepart1+12(1) = lwa_bapi_te_mara-zzf1. " pass value of custom-field
APPEND lwa_extensionin TO lt_extensionin.
****************************************************
lwa_bapi_te_marax-material = p_matnr.
lwa_bapi_te_marax-zzf1 = 'X'.
MOVE 'BAPI_TE_MARAX' TO lwa_extensioninx-structure. "Extension structure name
lwa_extensioninx-valuepart1+0(10) = lwa_bapi_te_marax-material. " pass value of material
lwa_extensioninx-valuepart1+12(1) = lwa_bapi_te_marax-zzf1. " pass value of custom-field
APPEND lwa_extensioninx TO lt_extensioninx.
wa_headdata-material = p_matnr.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = wa_headdata
TABLES
extensionin = lt_extensionin
extensioninx = lt_extensioninx
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.В общем, набрасал вот такой вот код. Программа отрабатывает, но поле не обновляется. Не знаю, почему
( в том числе и потому,наверное, что опыта - кот наплакал).
Вопрос: что не так и какие шаги необходимо предпринять, чтобы добиться цели.
Активно пользовался материалами из следующих ссылок:
http://wiki.scn.sap.com/wiki/display/AB ... stomfieldshttp://scn.sap.com/thread/164617http://scn.sap.com/community/erp/logist ... alsavedataСпасибо!