WorkflowProject


НАЧАЛО >> Workflow >> Модули Workflow >> WorkflowProject📄 Скачать в DOCX


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

1. Назначение проекта

Проект отвечает на вопросы:

2. Запись WORKFLOWPROJECT

Поле Назначение
920 тип записи WORKFLOWPROJECT
1^A ключ проекта
1^B название
1^C активность
1^D начальный статус по умолчанию
1^E workflow по умолчанию
1^F схема экранов по умолчанию
1^G схема фильтров по умолчанию
1^H схема представлений по умолчанию
1^I описание проекта
4^A тип записи v920
4^B workflow для типа записи
4^C поле идентификатора
4^D подполе идентификатора
4^E поисковый префикс
4^F схема экранов
4^G схема фильтров
4^H схема представлений
5^A ключ проектного типа объекта
5^B название проектного типа объекта
5^C системный тип записи v920
5^D workflow
5^E начальный статус
5^F схема экранов
5^G схема фильтров
5^H схема представлений
5^I профиль полей FieldConfiguration
5^J тип по умолчанию для своего v920
5^K активность
5^L описание
6^A тип записи v920, для которого доступен тип связи
6^B проектный тип объекта
6^C ключ типа связи
6^D название прямой связи
6^E название обратной связи
6^F категория связи
6^G активность
6^H описание
6^I порядок показа

3. Типы объектов проекта

Проектный тип объекта - это процессная классификация внутри проекта. Он не заменяет поле 920: 920 по-прежнему определяет модуль-владелец записи, а проектный тип выбирает workflow, начальный статус, схемы интерфейса и профиль FieldConfiguration. Выбранный тип объекта сохраняется в workflow-связи записи 113^I, поэтому одна запись может участвовать в разных проектах с разными процессными типами.

Если у записи нет 113^I, проект использует активный тип по умолчанию для соответствующего v920. Если проектные типы не настроены, используются fallback-настройки таблицы 4.

4. Типы связей проекта

Типы связей 113 LINK настраиваются в проекте, потому что разные workflow-проекты могут разрешать разные связи даже для одного и того же v920. Тип связи содержит ключ, прямое и обратное название, необязательную категорию, активность и область применения по типу записи или проектному типу объекта.

WorkflowView использует эти настройки в секции карточки links: администратор выбирает только доступный тип связи, а физическая запись связи остается стандартной для всех модулей.

5. Идентификаторы записей

Вместо прикладных функций вида FindQuestionByKey проект задает универсальную схему поиска. Для каждого типа записи можно указать поле, подполе и поисковый префикс. Универсальные страницы и API Workflow используют эти настройки для поиска записи по ключу.

Например, для обращений внешний идентификатор может иметь вид REQ-123, а поиск выполняется по настроенному префиксу в индексе.

6. Импорт, экспорт и копирование

WorkflowProject отвечает за операции с проектом как с конфигурационным пакетом:

При копировании должны копироваться workflow, статусы, переходы, экраны, схемы, фильтры, представления и проектные типы связей, связанные с проектом.

7. Использование из кода

Типовые методы:

Метод Назначение
GetProjectByKey() найти проект по ключу
ResolveRecordProject() определить проект записи по явному ключу, полю 113, идентификаторному полю записи или ключу по умолчанию
ApplyProjectToRecord() привязать запись к проекту и заполнить ее человекочитаемый идентификатор при необходимости
GetWorkflowKeyForRecordType() определить workflow для v920 и необязательного проектного типа
GetWorkflowKeyForRecord() определить workflow конкретной записи с учетом 113^I
GetRecordProjectObjectTypeKey() получить проектный тип записи из 113^I или дефолт проекта
GetRecordIdentityConfig() получить настройки идентификатора записи
GetRecordIdentityValue() прочитать идентификатор из записи по настройкам проекта
ApplyRecordIdentity() сформировать и записать идентификатор записи, если он еще не заполнен
FindRecordByIdentity() найти запись по внешнему идентификатору
GetLinkTypesForRecordType() получить доступные типы связей для типа записи и проектного типа объекта
ExportProjectDefinitionJson() получить JSON-описание проекта
HealthCheck_Self() выполнить self-check модели проекта Workflow