Возникла следующая проблема: при деблокировании блокированного запаса 105 ВДв из документа 103 ВДв не подтягивается значение из поля заголовка "Приходный ордер" в аналогичное поле в документе 105 ВДв.
Настроек копирования не нашли и решили запрограммировать данную подстановку.
Воспользовались BADI - MB_MIGO_BADI, интерфейс IF_EX_MB_MIGO_BADI. Имя внедренного класса ZCL_IM_MB_MIGO_BADI.
Воспользовались методом STATUS_AND_HEADER. В данном методе есть параметр IS_GOHEAD и он неизменяем. В самом классе есть параметр HEADER - он изменяем. В программе присвоили HEADER = IS_GOHEAD.
Написали обработку в данном методе и присвоили нужное значение в структуре HEADER, однако IS_GOHEAD при этом не изменяется и никакие изменения в загловок документа материала по факту не попадают.
Code:
header = is_gohead.
DATA: wa_item TYPE LINE OF t_items.
DATA wa_mseg TYPE mseg.
IF NOT items[] IS INITIAL.
READ TABLE items INTO wa_item INDEX 1.
IF wa_item-goitem-bwart = '105'.
SELECT SINGLE * INTO wa_mseg FROM mseg WHERE mblnr = wa_item-goitem-lfbnr
AND mjahr = wa_item-goitem-lfbja AND zeile = wa_item-goitem-lfpos.
SELECT SINGLE xabln INTO header-xabln FROM mkpf WHERE mblnr = wa_mseg-mblnr AND mjahr = wa_mseg-mjahr.
* E_HOLD_DATA_DISABLE = ' '.
ENDIF.
ENDIF.
Подскажите, пожалуйста, какое BADI использовать и вообще как решить данную проблему?
Пономарев Артем: пользуйтесь тэгами для оформления кода, пожалуйста.