НАЧАЛО >> 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 |
Схема выбора представления для страницы и типа записи |
WorkflowProject является точкой входа для прикладного сценария. Проект выбирает workflow по умолчанию, может переопределять его для отдельных системных типов записей v920 и может задавать проектные типы объектов. v920 определяет модуль-владелец и физическую модель записи, а проектный тип объекта выбирает workflow, начальный статус, схемы экранов, фильтров, представлений и профиль полей внутри проекта.
Workflow содержит только общую карточку рабочего процесса. Его статусы, переходы, экраны, фильтры и представления хранятся отдельными записями, связанными с workflow через поле 1^A.
WorkflowTransition связывает исходные статусы, целевой статус, право ALLOWAPPLY, condition-формат, экран и post-functions. Если переход помечен как keepStatus, он выполняет действие без смены статуса.
WorkflowView и WorkflowFilter вместе формируют универсальные страницы списков. WorkflowViewScheme выбирает представление по ключу страницы и является источником состава верхней навигации проекта: в меню попадают только страницы, перечисленные в активной схеме представлений. WorkflowFilterScheme выбирает фильтр по тому же ключу страницы. WorkflowView хранит параметры отображения пункта меню: группу, порядок, признак показа, тип страницы, canonical route и badge-фильтр.
Состояние прикладной записи хранится в поле 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 одновременно, если прикладной сценарий это использует.
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.
Настройка доступа следует общей модели прав ИРБИС 128:
WORKFLOWTRANSITION как ALLOWAPPLY;Прикладной модуль обычно отвечает только за доменную часть:
.ws и вложенные .wss;__call/Workflow/*.inc;