Действия задачи
Назначение
Действия задачи позволяют пользователю выполнять дополнительные действия над пользовательской задачей, не ограничиваясь только ее стандартным завершением.
Примеры использования:
- Создание подзадачи
- Передача задачи на другой уровень
- Уведомление руководителя
- Запуск дополнительного процесса согласования
- Изменение маршрута процесса
С технической точки зрения действия реализуются через BPMN-события эскалации (Escalation), связанные с задачей.
Как это работает
Для пользовательской задачи в BPMN-модели могут быть настроены дополнительные действия.
При выборе действия:
- Пользователь запускает действие
- Система отправляет BPMN Escalation
- Процесс продолжает выполнение по альтернативной логике
В зависимости от модели процесса действие может:
- Перевести процесс в другую ветку
- Запустить дополнительную параллельную ветку
- Создать подзадачу
- Запустить согласование
Как пользователь видит действия
Если для задачи настроены дополнительные действия:
- На странице задачи появляется список доступных действий
- Пользователь выбирает нужное действие
- Система выполняет соответствующую эскалацию
Действия настраиваются в BPMN-модели процесса.
Варианты реализации в BPMN
В UniBPM поддерживаются два варианта реализации:
- Boundary Escalation Event
- Escalation Start Event в Event Subprocess
Boundary Escalation Event
Наиболее распространенный вариант. Событие прикрепляется к пользовательской задаче.
Пример логики:
User Task → Boundary Escalation → Дополнительная ветка процесса
Пример BPMN:
<bpmn:userTask id="Activity_executeWorkorder" name="Выполнить работу"/>
<bpmn:boundaryEvent id="Event_subtask" attachedToRef="Activity_executeWorkorder" name="Создать подзадачу">
<bpmn:escalationEventDefinition escalationRef="Escalation_subtask"/>
</bpmn:boundaryEvent>
<bpmn:escalation id="Escalation_subtask" escalationCode="subtask"/>
Escalation Event через Subprocess
Используется для более сложной логики обработки.
<bpmn:subProcess id="EscalationHandler" triggeredByEvent="true">
<bpmn:startEvent id="StartEscalation">
<bpmn:escalationEventDefinition escalationRef="Escalation_subtask"/>
</bpmn:startEvent>
</bpmn:subProcess>
Как формируется список действий
Система анализирует BPMN-контекст задачи и определяет доступные действия.
Отображаются только те действия, которые:
- доступны в текущем состоянии процесса
- связаны с задачей
- корректно настроены в BPMN
Наименование действия берется из имени BPMN-события.
Важно
Каждое действие должно иметь escalationCode
<bpmn:escalation id="Escalation_subtask" escalationCode="subtask"/>
Права доступа
- Действие доступно только при наличии доступа к задаче
- Если задача назначена — действие может выполнить только назначенный пользователь
Особенности выполнения
- Действие не обязательно завершает задачу
- Может быть прерывающим или непрерывающим
- Поведение определяется BPMN-моделью
Рекомендации по моделированию
Используйте понятные названия
Хорошо:
- Создать подзадачу
- Передать руководителю
- Запросить согласование
Плохо:
- Escalation_1
- Event2
Используйте уникальные escalationCode
Не перегружайте задачу действиями
Рекомендуется 1–3 действия на задачу
Ограничения
Действия доступны только если:
- Задача активна
- Есть доступ к задаче
- В BPMN настроены escalation events
Типичные ошибки
Действия не отображаются
- Нет escalationCode
- Событие не связано с задачей
- Процесс не задеплоен
Ошибка выполнения
- Ошибка в BPMN
- Неверная конфигурация процесса
Проверка перед публикацией
- Есть escalationCode
- Понятные названия
- Нет дублей
- События привязаны к задаче
Итог
Действия задачи — это дополнительные бизнес-операции, реализованные через BPMN Escalation, позволяющие гибко управлять процессом без изменения основной логики задачи.