В настоящее время я работаю над некоторыми проверками для транзакции SAP vl02n и хочу проверить партии и соответствует ли их срок годности некоторым критериям.
Для этого я использую пользователя-выход SAVE_DOCUMENT_PREPARE .Если проверки не пройдены, должна быть решетка ALV, которая содержит ошибочные позиции. Обработка PGI должна быть прервана.
Моя проблема заключается в том, что при тестировании этих дефектных пакетов возникает ошибка, подобная этой:
Риск размещения нескольких матов.documents для одной доставки-> длинный текст.
Я прочитал статью, в которой говорилось, что вы должны использовать команду ROLLBACK WORK , но я не совсем уверен, будет ли это работать, если ядумаю, что не было COMMIT, пока не узнаешь ...
Это то, что я получил до сих пор (ROLLBACK WORK пока не тестируется).
[...]
IF lt_faulty_lips IS NOT INITIAL.
" Titel des ALV-Grid abhaengig von der Sprache festlegen
IF sy-langu EQ 'D'.
lv_grid_title = 'Verfallsdatum folgender Positionen zu klein.'.
ELSE.
lv_grid_title = 'Expiration date of the following items too small.'.
ENDIF.
" Grid-Title setzen
MESSAGE s001(zamm) INTO lv_grid_title.
" Fehler-Message ausgeben
MESSAGE s000(zamm) DISPLAY LIKE 'E'.
" is this possible?
"ROLLBACK WORK.
" ALV-Grid mit fehlerhaften Positionen ausgeben
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_grid_title = lv_grid_title
i_callback_program = 'SY-REPID'
i_structure_name = 'LIPSVB'
is_layout = gs_alv_layout
TABLES
t_outtab = lt_faulty_lips
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
" Implement suitable error handling here
ENDIF.
" nochmals Message-Ausgabe im Hauptbild
MESSAGE e000(zamm) DISPLAY LIKE 'E'.
Как я мог решить эту проблему?
Спасибо большое, каждый намек ценится!