Могу ли я безопасно удалить активную строку при просмотре внутренней таблицы?
В качестве примера рассмотрим этот код:
LOOP AT lt_itab INTO ls_wa.
IF [...] . " A check that can't be done inside a 'DELETE lt_itab WHERE'
DELETE lt_itab INDEX sy-tabix
" OR
DELETE lt_itab FROM ls_wa.
ENDIF.
ENDLOOP.
Безопасно ли удалять подобные записи или эта логика будет работать не так, как задумано?
Должен ли я вместо этого сохранить уникальный идентификатор для строк во временном itab и запустить DELETE lt_itab WHERE
после цикла?
Я предполагаю, что операции удаления с записями, отличными от той, которая загружена в текущей итерации, определенно вызовут проблемы, но я не уверен, действительно ли это, не говоря уже о хорошей практике.