Интеграция РД и модуля событий
Зачем нужна связка двух модулей
В Structura рабочая документация и события — это два разных модуля, которые работают вместе. Без понимания, как они соединены, легко запутаться: «почему процесс показывает одно, а карточка листа — другое?»
| Модуль | За что отвечает |
|---|---|
| События | Маршруты (шаблоны), запущенные процессы (instances), задачи участников, история переходов и решений |
| Рабочая документация | Реестр комплектов и документов, листы и их версии, пакеты загрузок, замечания, согласования, опубликованные выпуски |
Граница простая: процессное живёт в Событиях, содержательное живёт в РД.
Как они связаны технически
Связь устроена через идентификаторы:
- Шаблон маршрута (
project_event_template) описывает правила. - При запуске процесса создаётся экземпляр процесса (
project_event_instance), который связан с конкретным предметом — для документации это batch (пакет загрузки). - Batch в свою очередь связан с document_version (ревизией документа в реестре РД).
- Через document_version пакет связан с конкретным документом в реестре, через документ — с комплектом.
- Внутри document_version есть листы — каждая ревизия хранит набор листов, и постоянный внутренний идентификатор листа сохраняется между ревизиями.
Цепочка:
Шаблон маршрута → Процесс (instance) → Пакет (batch) → Ревизия документа → Документ в реестре → ЛистыПользователь видит этот контекст в карточке процесса (drawer в Кабинете событий) и в шапке экрана маршрута пакета документации.
Точки синхронизации между модулями
1. Старт процесса
Когда пользователь нажимает «Запустить процесс» по шаблону документации в модуле «События», сразу процесс не создаётся: система переводит автора на форму загрузки. Реальный запуск процесса происходит только после того, как автор заполнил форму и нажал «Отправить на валидацию».
Что синхронизируется:
- Создаётся
project_event_instanceсо ссылкой на шаблон. - Создаётся
batchсо ссылкой на загруженный PDF. - Batch связан с instance через служебное поле.
Где видно:
- В кабинете событий — новая задача у валидатора на этапе «Валидация».
- В очереди валидатора в модуле РД — новый пакет.
2. Промежуточные переходы
Когда валидатор нажимает «Отправить на согласование» или согласующий нажимает «Передать на утверждение», происходят:
- Обновление статуса задачи в Событиях.
- Изменение текущего этапа процесса.
- Запись в истории процесса.
- Состояние пакета в РД (стадия workflow) обновляется параллельно.
Где видно:
- В карточке процесса в кабинете — текущий этап обновился.
- На экране маршрута пакета — стадия workflow обновилась.
3. Per-sheet decisions
Когда согласующий или утверждающий принимает решение по конкретному листу («Утвердить окончательно», «Опубликовать с замечаниями» и т.п.), оно фиксируется в обоих модулях:
- В РД — в
sheet_decisionsиsheet_publicationsдля конкретного листа. - В Событиях — в истории задачи.
Решение по листу не двигает процесс. Процесс двигают финальные кнопки этапа.
4. Замечания
Замечания живут в модуле РД, привязаны к листам. Но если замечание создаётся в контексте задачи кабинета событий (например, согласующий создал замечание во время своего этапа), у замечания может быть связь с этой задачей.
Где видно:
- В карточке листа РД — список замечаний.
- В карточке процесса — может быть упомянуто как часть истории.
- В кабинете событий — если замечание назначено на пользователя, оно может приходить как задача.
5. Финальный итог
Когда утверждающий нажимает «Завершить утверждение», цепочка событий:
- В модуле Событий: процесс получает статус «Согласовано», запись в истории «Процесс согласован».
- В модуле РД: для каждого листа фиксируется финальное решение и статус публикации, штампуется PDF с QR. Если нужна единая сборка PDF документа целиком — она готовится в фоне из текущих ревизий листов.
- Через 1-2 минуты: сборка PDF документа готова, доступна для скачивания с главного экрана РД. Сборка — отчётный артефакт, не lifecycle-сущность: листы при этом уже доступны на стройке через QR.
Когда система может показывать «не то»
Иногда пользователю кажется, что состояние в одном модуле не совпадает с другим. Типичные причины:
Сценарий А. «Процесс согласован, но сборки PDF документа ещё нет»
Причина: фоновая сборка ещё идёт. После завершения утверждения сборка PDF документа целиком занимает до минуты для больших документов. Сами листы при этом уже доступны — их карточки показывают новые статусы, QR со стройки ведёт на актуальную ревизию. Ожидание касается только единой сборки.
Что делать: подождать минуту, обновить страницу. Если сборка не появляется дольше — это технический инцидент.
Сценарий Б. «Лист утверждён, но в реестре согласований показывает «В работе»»
Причина: между завершением утверждения и публикацией листа есть небольшой промежуток, когда статус ещё «промежуточный».
Что делать: обновить страницу через 30 секунд.
Сценарий В. «У меня в кабинете задача есть, но в РД пакет не открывается»
Причина: пакет может быть в стадии, когда у вас нет прав на действия (например, вы согласующий, а пакет ещё на этапе валидации).
Что делать: проверить, на какой стадии пакет. Открывайте его, когда этап ваш.
Сценарий Г. «Замечание создал, но в карточке процесса оно не видно»
Причина: замечания живут в РД и не всегда напрямую отражаются в истории процесса. Замечания, созданные согласующим в его задаче, попадают в историю; замечания, созданные «вне процесса» (например, нормоконтролем), могут не отражаться.
Что делать: искать замечания в их «родном» месте — в карточке листа или в реестре замечаний.
Как читать оба модуля параллельно
Для полной картины полезно держать открытыми оба:
- Кабинет событий — что нужно делать прямо сейчас и кому какие задачи.
- Реестр рабочей документации / карточка листа — что происходит с самим документом, какие версии и замечания.
В Структуре оба модуля доступны в проекте; переключение — через панель модулей в проекте.
Что важно понимать
- Один процесс соответствует одной ревизии. Если автор подаёт новую ревизию, запускается новый процесс. Старый закрывается.
- Решения по листам — это РД, не События. Кнопки «Утвердить лист» / «Вернуть лист» фиксируются в карточке листа и в реестре согласований. В Событиях остаётся только информация, что этап закрылся.
- Возврат — это новый процесс. Возврат пакета не «приостанавливает старый процесс на этапе автора», а закрывает его как «Возвращено». Автор, готовя новую версию, запускает новый процесс.
- Финальный публикационный статус виден в РД. Карточка процесса показывает статус процесса (Согласовано / Возвращено); статус листа смотрите в реестре согласований или карточке листа.