Введение
Flowable CMMN — это мощная платформа с открытым исходным кодом для управления делами и автоматизации рабочих процессов. Одной из его ключевых особенностей является возможность определять условия выхода, которые позволяют вам контролировать ход рассмотрения ваших дел на основе определенных условий. В этой статье мы погрузимся в мир условий выхода в Flowable CMMN и рассмотрим различные методы, которые можно использовать для их определения.
Метод 1: Условие выхода вручную
Самый простой способ определить условие выхода — использовать задачу, выполняемую вручную. В Flowable CMMN задача, выполняемая вручную, представляет собой шаг, требующий вмешательства человека. Вы можете установить условие завершения задачи, выполняемой вручную, чтобы указать, что дело должно завершиться, если задача завершена.
Task exitTask = caseService.createTaskBuilder()
.name("Exit Task")
.exitCondition("${taskVariables['completed'] == true}")
.manualTask()
.create();
caseService.setVariable(exitTask.getId(), "completed", true);
Метод 2: условие выхода по таймеру
Другим распространенным методом является использование события таймера в качестве условия выхода. Это позволяет вам указать продолжительность, по истечении которой дело должно быть закрыто. Например, вы можете установить таймер для выхода из дела через 3 дня.
PlanItemInstance exitTimer = caseService.createPlanItemInstanceBuilder()
.planItemDefinitionId("exitTimer")
.exitCriteria("${now() > taskVariables['exitTime']}")
.create();
caseService.setVariable(exitTimer.getId(), "exitTime", LocalDateTime.now().plusDays(3));
Метод 3: условие выхода на основе переменных
Flowable CMMN также позволяет определять условия выхода на основе переменных. Вы можете использовать выражения для оценки значений переменных и определения того, следует ли завершать обработку. Вот пример:
PlanItemInstance exitCondition = caseService.createPlanItemInstanceBuilder()
.planItemDefinitionId("exitCondition")
.exitCriteria("${taskVariables['quantity'] > 10}")
.create();
caseService.setVariable(exitCondition.getId(), "quantity", 15);
Метод 4: Условие выхода на основе события
В некоторых случаях может потребоваться завершить рассмотрение дела на основе внешних событий. Flowable CMMN предоставляет прослушиватели событий, которые могут инициировать условия выхода. Например, вы можете определить условие выхода на основе события сообщения.
EventListener exitListener = caseService.createEventListenerBuilder()
.name("Exit Listener")
.eventType("message")
.exitCriteria("${eventVariables['message'] == 'exitCase'}")
.create();
caseService.startListeningFor("exitCase", exitListener.getId());
Заключение
В этой статье мы рассмотрели различные методы определения условий выхода в Flowable CMMN. От ручных задач до таймеров, условий на основе переменных и прослушивателей событий — платформа предлагает гибкие возможности для управления потоком ваших дел. Используя эти методы, вы можете создавать надежные и динамичные решения для управления делами. Так что вперед, погрузитесь в мир условий выхода в Flowable CMMN и поднимите автоматизацию рабочих процессов на новый уровень!