RoadRunner написал:
Так и сделали!
Кроме того, в полях LFBJA, LFBNR и LFPOS указывается первоначальный документ в цепочке сторно, а в полях SJAHR, SMBLN и SMBLP - сторнируемый текущим документом. Просто интересовала сама возможность - иногда было бы проще получить какую-то информацию из элементов экрана, чем делать запрос к базе. Я имею в виду что-то вроде оптимизации доступа
В любом случае, спасибо всем, кто откликнулся!
Вопрос на форуме подобный уже поднимался, правда несколько в ином контексте, но главное реализация, которую рассмотрим на примере MB_DOCUMENT_BADI (работает в MIGO):
В методе MB_DOCUMENT_BEFORE_UPDATE вставляем примерно следующий код:
method if_ex_mb_document_badi~mb_document_before_update.
data: i_godynpro type godynpro.
field-symbols: <x_godynpro> type any.
assign ('(SAPLMIGO)godynpro') to <x_godynpro>.
if sy-subrc eq 0.
move: <x_godynpro> to i_godynpro.
* анализ выполняемой операции
case i_godynpro-action.
when 'A01'.
...
when 'A03'. "Вот ваше сторно
endacse.
* анализ вида ссылочного документа
case i_godynpro-refdoc.
when 'R01'.
when 'R02'.
...
when 'R05'.
endacse.
endif.
endmethod.
то же самое можно реализовать и в ФМ customer-exit-ов, например в MBCF0002 :
*----------------------------------------------------------------------*
* INCLUDE ZXMBCU02 *
*----------------------------------------------------------------------*
*" IMPORTING
*" VALUE(I_MSEG) LIKE MSEG STRUCTURE MSEG
*" VALUE(I_VM07M) LIKE VM07M STRUCTURE VM07M
*" VALUE(I_DM07M) LIKE DM07M STRUCTURE DM07M
*" VALUE(I_MKPF) LIKE MKPF STRUCTURE MKPF
*" EXPORTING
*" VALUE(E_SGTXT) LIKE MSEG-SGTXT
data: i_godynpro type godynpro,
i type i.
field-symbols: <x_godynpro> type any.
assign ('(SAPLMIGO)godynpro') to <x_godynpro>.
if sy-subrc eq 0.
move: <x_godynpro> to i_godynpro.
* анализ выполняемой операции
case i_godynpro-action.
when 'A01'.
...
when 'A03'. "Вот ваше сторно endacse.
* анализ вида ссылочного документа
case i_godynpro-refdoc.
when 'R01'.
when 'R02'.
...
when 'R05'.
endacse.
endif.