Зафиксируйте за одну таблицу
Возможно ли выполнить коммит только для выбранной таблицы? У меня проблема в том, что я не знаю, есть ли в процессе новые таблицы, поэтому я не хочу обновлять их с помощью моего коммита! Это массовая обработка, и в конце процесса она вызывает коммит (логически). Так есть ли способ обновить одну специальную таблицу вместо всех?
Случай: прогон массовой обработки, как и тот, с которым я работаю, обновляется в самом конце.
Наш / Мой код - это просто реализация BAdI с несколькими функциями. Чтобы получить конкретные данные, необходимо сделать запрос в другую систему, этот запрос не может пропустить какие-либо шаги в журнале истории, поэтому строго необходимо откатить запрос, чтобы не сохранять его в Системе. Этот запрос используется для записей рабочих элементов. Таким образом, если я обработаю 1 количество наборов данных и сгенерирую рабочий элемент, этот рабочий элемент будет зарегистрирован для выброса после выполнения. При обработке количества наборов данных в 2º и выполнении запроса к другой системе я должен откатить его, но запись рабочего элемента первого количества наборов данных будет удалена (откат назад). ¿Можно ли сделать эти обновления с прямым коммитом? -> Нет. ¿Разве я не могу просто управлять таблицами, чтобы они обновлялись внутренними таблицами и обновляли их в конце цикла? -> Нет, потому что эти классы не принадлежат нам. ¿Почему я просто не делаю откат в конце пробега? -> эти классы не принадлежат нам, и в противном случае вся структура массовой обработки должна быть изменена.
2 ответа
Как программист, вы имеете контроль и должны знать, что обновляется. Если вы структурируете свой код в LUW, то вы можете контролировать, какие таблицы обновляются и в какой момент вы обнаруживаете ошибку, которая все еще допускает соответствующий откат. Таким образом, ответ конкретно об утверждении коммита был дан выше, но как программист вы можете сгруппировать свои утверждения, чтобы выполнить то же самое.
Потом.....
AFAIK В момент, когда вызывается коммит, все DML, предшествующие этому оператору коммита и после последнего коммита, фиксируются в базе данных. Так что если после вашего коммита больше коммитов, то на ваш коммит они не влияют, ни ваш коммит не может влиять на их, если, конечно, не существует условия отката.