Как activiti обрабатывает состояние исключения? Если в какой-либо задаче возникнет ошибка, как поток вернется к шагу, с которого задачу можно будет выполнить снова?
Как обрабатывать состояние исключения в activiti bpmn
Ответы (1)
На этот вопрос есть пара ответов. Если задача является задачей java или сценария и выполняется синхронно, то возобновление неудачного экземпляра (обычно вызванного техническим исключением) происходит из последнего сохраненного состояния (помните, механизм BPM — это просто конечный автомат).
Теперь вы можете (очевидно) добавлять обработчики исключений (особенно в версии 5.15, в которой представлены обработчики событий) для конкретной задачи или для экземпляра процесса в целом. Эти обработчики исключений позволяют вам управлять откатом транзакций (зависит от используемого менеджера транзакций).
Наконец, вы можете поднять bpmnEvent до модели процесса и обрабатывать исключения/компенсации с помощью прикрепленного/граничного обработчика событий в модели BPMN.
Надеюсь это поможет. Грег Харли.