← К заметкам

Заметки

Как не зациклить БП при изменении карточки

Процесс запускается на изменение карточки, записывает в неё значение и этим создаёт новое изменение. Если после записи условие запуска остаётся истинным, цепочка может повторяться.

Самая простая защита — не выполнять запись, если нужное состояние уже достигнуто. Для уведомления или внешней операции одного сравнения поля недостаточно: нужен учёт того, какое действие уже выполнено.

Не помечайте операцию завершённой до её выполнения. При ошибке такая отметка запретит повтор и данные потеряются. Полезно различать состояния «ожидает», «в работе», «выполнено» и «ошибка».

Ключ сделка + стадия подходит не всегда: сделка может законно вернуться на ту же стадию. Сначала определите, какой именно повтор нужно подавить, а какой считается новым действием.