Архитектура Workflow


НАЧАЛО >> Workflow >> Архитектура Workflow📄 Скачать в DOCX


Workflow построен как набор независимых модулей, каждый из которых отвечает за один вид настройки.

Модуль Тип записи Ответственность
Workflow WORKFLOW Рабочий процесс и общий механизм выполнения переходов
WorkflowProject WORKFLOWPROJECT Проект, связывающий типы записей с workflow, схемами, идентификаторами и правами
WorkflowStatus WORKFLOWSTATUS Статусы конкретного workflow
WorkflowTransition WORKFLOWTRANSITION Переходы между статусами и post-functions переходов
WorkflowScreen WORKFLOWSCREEN Экран he3 для запроса данных перед операцией
WorkflowScreenScheme WORKFLOWSCREENSCHEME Схема выбора экранов для операций и типов записей
WorkflowFilter WORKFLOWFILTER Фильтр списка записей
WorkflowFilterScheme WORKFLOWFILTERSCHEME Схема выбора фильтра для страницы и типа записи
WorkflowView WORKFLOWVIEW Настройка списочного или карточного представления
WorkflowViewScheme WORKFLOWVIEWSCHEME Схема выбора представления для страницы и типа записи

1. Основные связи

WorkflowProject является точкой входа для прикладного сценария. Проект выбирает workflow по умолчанию, может переопределять его для отдельных системных типов записей v920 и может задавать проектные типы объектов. v920 определяет модуль-владелец и физическую модель записи, а проектный тип объекта выбирает workflow, начальный статус, схемы экранов, фильтров, представлений и профиль полей внутри проекта.

Workflow содержит только общую карточку рабочего процесса. Его статусы, переходы, экраны, фильтры и представления хранятся отдельными записями, связанными с workflow через поле 1^A.

WorkflowTransition связывает исходные статусы, целевой статус, право ALLOWAPPLY, condition-формат, экран и post-functions. Если переход помечен как keepStatus, он выполняет действие без смены статуса.

WorkflowView и WorkflowFilter вместе формируют универсальные страницы списков. WorkflowViewScheme выбирает представление по ключу страницы и является источником состава верхней навигации проекта: в меню попадают только страницы, перечисленные в активной схеме представлений. WorkflowFilterScheme выбирает фильтр по тому же ключу страницы. WorkflowView хранит параметры отображения пункта меню: группу, порядок, признак показа, тип страницы, canonical route и badge-фильтр.

2. Состояние записи

Состояние прикладной записи хранится в поле 113:

Подполе Значение
113^A LINK
113^B WORKFLOW
113^C SID владельца workflow, если он известен
113^D тип владельца, например WORKFLOWPROJECT
113^E ключ владельца, например ключ проекта
113^F текущий код статуса
113^G дата и время входа в статус
113^H ключ последнего перехода
113^I ключ проектного типа объекта, если он выбран для этого проекта

Одна запись может иметь несколько вхождений 113 для разных владельцев workflow. Это позволяет одной записи участвовать в нескольких проектах или workflow одновременно, если прикладной сценарий это использует.

3. История

Workflow пишет историю в поле 907. Для workflow-событий используются подполя:

Подполе Значение
907^A дата действия в формате YYYYMMDD
907^T время действия в формате HHMMSS
907^B логин исполнителя
907^C тип события, для workflow используется Workflow
907^D название действия
907^E исходный статус
907^F новый статус
907^G комментарий
907^W ключ workflow
907^P ключ проекта
907^N ключ перехода
907^U SID пользователя

Историю можно выводить стандартной функцией Workflow::RenderRecordHistory.

4. Права

Настройка доступа следует общей модели прав ИРБИС 128:

5. Расширение прикладными модулями

Прикладной модуль обычно отвечает только за доменную часть: