Ветвление задач на согласование: как перенести сложные маршруты с Directum 5 в RX

Одна из типичных задач: отправка задания на уточнение или запрос мнений без остановки основного процесса. Как это реализовать, сохранив привычную логику и не создавая десятки кастомных типов задач?
В этом материале — наш подход к решению сложных кейсов согласования при миграции с Directum 5.
Задача: два сценария из реальной жизни
При анализе существующих регламентов у заказчика выявили два критичных сценария:
1. Запрос уточнений у инициатора
Согласующий не может принять решение, пока не получит дополнительные сведения. Важно: основной процесс не должен останавливаться, и другие участники должны иметь возможность продолжать работу.
2. Запрос мнений у коллег
Согласующий хочет получить обратную связь от других сотрудников, но не как часть маршрута, а как вспомогательное действие. При этом он сам определяет, кому отправить запрос, и в какой последовательности.
Почему стандартные механизмы не подходят?
Задание на доработку | Останавливает основной маршрут, не позволяет параллельную работу. |
Подзадача (отдельный тип) | Не интегрирована в контекст согласования, теряется связь с основным заданием. |
Создание новой задачи | Не приостанавливает исходное задание, согласующий может случайно его завершить. |
Нужно было решение, которое:
— Сохраняет целостность процесса.
— Не требует разработки множества новых типов задач.
— Работает в рамках стандартной задачи на согласование по регламенту.
Решение: «пауза» в задании + подзадача
Мы разработали модификацию, которая дополняет стандартные типы заданий (ApprovalAssignment, ApprovalCheckingAssignment, ApprovalSimpleAssignment) двумя ключевыми элементами:
1. Новое состояние задания — «На уточнении»
При отправке запроса задание согласующего переходит в статус «На уточнении». Кнопки выполнения становятся недоступными, что исключает преждевременное завершение.
2. Действие «Отправить на уточнение / запрос мнения»
Доступно только при включённой настройке на этапе регламента. Создаёт подзадачу нужного типа (уточнение или мнение) и связывает её с основным заданием.
Как это работает: пошагово
1. Настройка этапа регламента
В конструкторе регламента добавляем логическое свойство: «Доступна отправка на уточнение / запрос мнения».
2. Действие в задании
При открытии задания у согласующего появляется кнопка: «Отправить на уточнение» или «Запросить мнение».
3. Создание подзадачи
— Для уточнения: диалог с полем для вопроса, исполнитель — инициатор задачи.
— Для мнения: выбор сотрудников, сроков и последовательности согласования.
4. Пауза основного задания
Исходное задание переходит в статус «На уточнении», срок снимается. Это не влияет на параллельные задания по этапу — другие согласующие могут работать.
5. Возобновление после выполнения подзадачи
После завершения подзадачи основное задание не возобновляется автоматически — это остаётся на усмотрение согласующего. Это важно для соблюдения дисциплины процесса.
Преимущества решения
— Минимум доработок — модифицированы только три стандартных типа заданий.
— Сохранение контекста — подзадача привязана к основному заданию, вся история видна в одном месте.
— Гибкость — можно включать/выключать функцию на любом этапе регламента.
— Соответствие требованиям Directum RX — решение реализовано через low-code, без нарушения архитектуры.
Итог: миграция без компромиссов
Этот подход позволил заказчику перенести сложные маршруты с Directum 5 в RX с минимальными изменениями. Бизнес-логика осталась привычной, а система стала надёжнее и проще в сопровождении.
Важно понимать: Directum RX не требует полного отказа от старых практик. При грамотном подходе можно адаптировать даже самые нетипичные сценарии, не создавая «велосипедов».
— Бесплатная консультация по сценариям вашей интеграции
— Демонстрация решения в течение 24 часов