Пользовательская задача (User Task)
Пользовательская задача - это единица работы, которая должна быть выполнена в рамках бизнес-процесса по заявке.
Ключевые принципы
Пользовательские задачи создаются процессным движком в соответствии с моделью процесса.
При наступлении события, связанного с пользовательской задачей, процессный движок выполняет экспорт сообщения с данными о задаче в топик брокера сообщений Kafka.
Имя топика указывается в конфигурационном параметре
camunda-kafka-import.user-task-event-topic=user-task-events.При считывании сообщения система выполняет действия согласно алгоритму:
- Выполняется поиск пользователя по идентификатору, равному значению, указанному в поле assignee.
- Выполняется поиск заявки по идентификатору, равному значению, указанному в бизнес-ключе.
- Выполняется поиск задачи по значению, указанному в поле id.
- Если задача не найдена, она будет создана и привязана к заявке и ответственному пользователю.
- Если задача найдена, произойдет обновление её атрибутов согласно данным, содержащимся в сообщении.
- В обоих случаях произойдет обновление статуса задачи в соответствии с событием, переданным в сообщении.
Сопоставление Событие => Статус задачи
- CREATE => NEW (Новая задача)
- ASSIGNMENT => ASSIGNED (Назначена)
- COMPLETE => COMPLETED (Завершена)
- DELETE => DELETED (Удалена)
Пользовательская задача может иметь связанную экранную форму в формате Camunda Forms. Шаблоны экранных форм хранятся в моделях рабочего процесса.
Доступные операции с задачей
- assign - назначить задачу на пользователя
- claim - назначить задачу на себя (заклеймить)
- unassign - убрать исполнителя задачи
- complete - завершить задачу
При выполнении операции complete в процессный движок отправляется запрос, завершающий задачу.