Workflow
Назначение
Сервис обеспечивает настройку и применение маршрутов согласования, состояний и переходов документов в Dinext. Позволяет задавать workflow для тип документа, ограничивать доступные переходы по ролям и при необходимости учитывать пользователя .
Цели и задачи
- Настраивать состояния (статусы) документа и разрешенные переходы между ними.
- Назначать действия (Workflow Action) для перехода: кто и при каких условиях может перевести документ в следующий статус.
- Ограничивать список переходов для пользователя .
- Интегрировать workflow с уведомлениями и правами доступа.
- Применять workflow к проектным документам (задачи, обращения, таймшиты и др.).
Для кого
- Администраторы, настраивающие workflow для тип документа.
- Пользователи, выполняющие согласование (Workflow Action).
- Руководители и контролеры, отслеживающие документы в статусах.
- Разработчики при расширении переходов и условий .
Основные понятия
- Workflow — маршрут: набор состояний и переходов между ними для тип документа.
- Workflow State — состояние документа (черновик, на согласовании, согласовано и т.д.).
- Workflow Action — действие перехода из одного состояния в другое; привязано к роли или условию.
- Workflow Transition — разрешенный переход; в Dinext может ограничиваться списком Available Workflow Transitions и пользователем .
- Allow Self Approval — разрешение согласовать документ самому себе (при настройке).
Основные сущности / объекты
- Workflow, Workflow Action — ядро workflow.
- Dinext — проектные workflow и доступные переходы (Available Workflow Transitions, hooks).
- Dinext — получение переходов с учетом пользователя (README).
Основные сценарии / процессы
Настройка workflow (администратор)
- Создать Workflow: выбрать тип документа, задать состояния (Draft, Submitted, Cancelled и др. или кастомные).
- Задать переходы между состояниями и для каждого перехода — Workflow Action с указанием роли (и при необходимости условия).
- Активировать workflow; при необходимости настроить Available Workflow Transitions в Dinext и логику в Dinext для фильтрации переходов по пользователю.
- Связать уведомления с переходами при необходимости (Notification по документу и полю статуса).
Выполнение перехода (пользователь)
- Открыть документ в статусе, из которого разрешен переход.
- В боковой панели или в меню действий выбрать Workflow Action (например, «Отправить на согласование», «Согласовать», «Отклонить»).
- Подтвердить действие; документ перейдет в следующее состояние. Если у пользователя нет права на переход, действие не отображается или блокируется.
- При отклонении или возврате заполнить комментарий при требовании настройки.
Ограничение переходов по пользователю
- В Dinext настраиваются доступные переходы (Available Workflow Transitions).
- В Dinext при получении списка переходов учитывается текущий пользователь; отображаются только разрешенные для него переходы.
- Пользователь видит только те кнопки Workflow Action, которые ему разрешены.
Правила и ограничения
- Один активный workflow на тип документа; смена workflow может потребовать миграции данных.
- Документ в финальном состоянии (например, Cancelled) может блокировать повторные переходы в зависимости от настроек.
- Права на создание/редактирование документа могут быть дополнительно ограничены по статусу (например, только черновик редактируется).
Результаты / отчетность
- Документы в актуальном статусе; история переходов при ведении в системе.
- Список документов с фильтром по статусу workflow.
- Уведомления согласующим при настройке Notification.
Типовые вопросы и ошибки (FAQ)
Почему не вижу кнопку перехода по workflow?
Проверьте: ваш пользователь имеет роль, для которой задан этот Workflow Action; переход разрешен из текущего состояния; при использовании Dinext/Dinext ваш пользователь входит в список тех, кому доступен этот переход.
Как запретить самосогласование?
В настройках Workflow или Workflow Action отключите «Allow Self Approval» (или аналог); тогда пользователь не сможет перевести свой же документ по действию, требующему согласования.
Где задаются доступные переходы для роли?
В документе Workflow: для каждого перехода указывается Workflow Action и роль. В Dinext дополнительно используется тип документа Available Workflow Transitions для уточнения списка переходов.