Платформа 3V/Согласование/Статусы и шаги: различия между версиями
(Содержимое страницы заменено на «Страница в разработке») Метка: замена |
|||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | Схема согласования состоит из состояний (states) и шагов (steps).<br> | |
+ | |||
+ | В качестве состояния прописываются все задачи, которые необходимы для прохождения бизнес-процесса. Каждое состояние должно иметь уникальный идентификатор, который в дальнейшем используется для описания шагов. <br> | ||
+ | |||
+ | Шаги описывают действия перехода из одного состояния в другое. Можно настроить действия в различном направлении, которое продвигает процесс вперед, либо возвращает назад. Верхнее состояние считается стартовым для процесса. Процесс согласования заканчивается в том случае, если из текущего состояние нет н одного шага для перехода в следующее состояние. <br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON-модель схемы согласования</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "schema": { | ||
+ | "states": [ | ||
+ | … | ||
+ | ], | ||
+ | "steps": [ | ||
+ | … | ||
+ | ], | ||
+ | "startStateId": 1 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | == Настройка состояний (states) == | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">Пример JSON-модели состояний</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "states": [ | ||
+ | { | ||
+ | "localizedName": { | ||
+ | "defaultValue": "", | ||
+ | "items": [ | ||
+ | { | ||
+ | "language": "ru", | ||
+ | "value": "Рассмотрение и согласование документов" | ||
+ | }, | ||
+ | { | ||
+ | "language": "en", | ||
+ | "value": "Рассмотрение и согласование документов" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "icon": null, | ||
+ | "dataAvailabilitySettings": { | ||
+ | "disableEdit": false | ||
+ | }, | ||
+ | "subProcesses": [], | ||
+ | "regulation": { | ||
+ | "years": null, | ||
+ | "quarters": null, | ||
+ | "months": null, | ||
+ | "days": 5, | ||
+ | "hours": null, | ||
+ | "discriminator": "TimePeriodStateRegulationModel", | ||
+ | "expiringNotificationPeriodMinutes": null | ||
+ | }, | ||
+ | "id": 1, | ||
+ | "name": "Рассмотрение и согласование документов" | ||
+ | }, | ||
+ | { | ||
+ | "localizedName": { | ||
+ | "defaultValue": "", | ||
+ | "items": [ | ||
+ | { | ||
+ | "language": "ru", | ||
+ | "value": "Рассмотрение завершено" | ||
+ | }, | ||
+ | { | ||
+ | "language": "en", | ||
+ | "value": "Рассмотрение завершено" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "icon": null, | ||
+ | "dataAvailabilitySettings": { | ||
+ | "disableEdit": true | ||
+ | }, | ||
+ | "subProcesses": [], | ||
+ | "id": 2, | ||
+ | "name": "Рассмотрение завершено" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | Основные свойства настройки состояний:<br> | ||
+ | |||
+ | '''Id''' – идентификатор состояния<br> | ||
+ | |||
+ | '''localizedName''' – наименование состояния, можно настроить локализацию на английском и русском языках.<br> | ||
+ | |||
+ | '''localizedComment''' – комментарий для состояния. Можно использовать как дополнительное свойство, которое будет, например, относить состояние к определенному этапу.<br> | ||
+ | |||
+ | '''subProcesses''' – настройка подпроцессов <br> | ||
+ | Для состояния можно настроить несколько подпроцессов. Доступны следующие настройки:<br> | ||
+ | * localizedName - наименование подпроцесса, которое будет выводиться в списке действий для состояния. Можно настроить локализацию на английском и русском языках.<br> | ||
+ | * workflowId - идентификатор объекта согласования, который будет запускаться как подпроцесс.<br> | ||
+ | * parameterMappings - настройка связи значения параметра основного процесса и параметра подпроцесса.<br> | ||
+ | * subProcessNameTemplate - настройка шаблона для выводимого наименования подпроцесса. Применяется настройка только в источниках согласования. Добавлены подстановки для SubProcessNameTemplate:<br> | ||
+ | - SubProcessName - наименование подпроцесса из модели родительского процесса<br> | ||
+ | - StateName - наименование текущего состояния подпроцесса<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON применения настройки SubProcessNameTemplate</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "subProcesses": [ | ||
+ | { | ||
+ | "workflowId": 172492, | ||
+ | "name": "Подпроцесс 1", | ||
+ | "parameterMappings": [], | ||
+ | "subProcessNameTemplate": "%SubProcessName% - %StateName%" | ||
+ | }, | ||
+ | { | ||
+ | "workflowId": 172488, | ||
+ | "name": "Подпроцесс 2", | ||
+ | "parameterMappings": [], | ||
+ | "subProcessNameTemplate": null | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | '''!Важно:''' Подпроцессы не имеют схождений с основным процессом, запускаются только вручную и выполняются параллельно. <br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON-модель подпроцесса</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "subProcesses": [ | ||
+ | { | ||
+ | "workflowId": 115022, | ||
+ | "name": "Рассмотреть и согласовать документы", | ||
+ | "localizedName": { | ||
+ | "defaultValue": "Рассмотреть и согласовать документы", | ||
+ | "items": [ | ||
+ | { | ||
+ | "language": "ru", | ||
+ | "value": "Рассмотреть и согласовать документы" | ||
+ | }, | ||
+ | { | ||
+ | "language": "en", | ||
+ | "value": "Рассмотреть и согласовать документы" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "parameterMappings": [ | ||
+ | { | ||
+ | "parentProcessParameterId": 1, | ||
+ | "subProcessParameterId": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | '''Regulation''' – настройка регламента выполнения задачи (состояния). В качестве регламента можно:<br> | ||
+ | |||
+ | 1. задать дату, к моменту которой должно быть завершено текущее состояние процесса<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "regulation": { | ||
+ | "finishedDate": "2021-10-01T00:00:00.000Z", | ||
+ | "discriminator": "FixedStateRegulationModel", | ||
+ | "expiringNotificationPeriodMinutes": null | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | 2. задать период времени для завершения состояния (год, квартал, месяц, день, час)<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "regulation": { | ||
+ | "years": null, | ||
+ | "quarters": null, | ||
+ | "months": null, | ||
+ | "days": 1, | ||
+ | "hours": null, | ||
+ | "discriminator": "TimePeriodStateRegulationModel", | ||
+ | "expiringNotificationPeriodMinutes": 300 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | '''!Важно''': Свойство expiringNotificationPeriodMinutes отвечает за рассылку уведомлений при приближении срока выполнения. Если минуты заданы, то за указанное время будет выслано уведомление, которое указано в notifications в разделе regulation. Если данное свойство null, то уведомление при приближении срока отправляться не будет.<br> | ||
+ | |||
+ | '''dataAvailabilitySettings''' – настройка, которая отвечает за блокировку редактирования данных при запущенном процессе. По умолчанию блокирует "disableEdit": false<br> | ||
+ | |||
+ | '''Дополнительные настройки:'''<br> | ||
+ | '''ProcessAdminRole''' - настройка в config, в которой можно указать название роли, с которой пользователи будут иметь возможности перейти из любого состояния в любое другое. По умолчанию значение process_admin. В случае если пользователь будет обладать ролью ProcessAdminRole , то ему будут доступны генерируемые шаги с отрицательными идентификаторами, генерируемые шаги из схемы процесса будут ему не доступны.<br> | ||
+ | '''!Важно''': если администратор открыл конструктор для выполнения шага, и, до того как он выполнил один из них, кто то изменит структуру процесса (изменит последовательность или состав состояний), администратор может попасть не в то состояние, которое ожидал. Администратору необходимо выполнить шаг ещё раз, чтобы совершился корректный переход. | ||
+ | |||
+ | == Настройка шагов, действий перехода из одного состояния в другое (steps) == | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">Пример JSON-модели действий</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "steps": [ | ||
+ | { | ||
+ | "localizedName": { | ||
+ | "defaultValue": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки", | ||
+ | "items": [ | ||
+ | { | ||
+ | "language": "ru", | ||
+ | "value": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки" | ||
+ | }, | ||
+ | { | ||
+ | "language": "en", | ||
+ | "value": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "fromStateId": 1, | ||
+ | "toStateId": 2, | ||
+ | "id": 1, | ||
+ | "name": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | Основные свойства настройки действий:<br> | ||
+ | |||
+ | '''Id''' – идентификатор действия<br> | ||
+ | |||
+ | '''localizedName''' – наименование состояния, можно настроить локализацию на английском и русском языках<br> | ||
+ | |||
+ | '''fromStateId''' – идентификатор состояния, из которого совершается действие<br> | ||
+ | |||
+ | '''toStateId''' - идентификатор состояния, в которое совершается действие<br> |
Текущая версия на 07:11, 18 апреля 2022
Схема согласования состоит из состояний (states) и шагов (steps).
В качестве состояния прописываются все задачи, которые необходимы для прохождения бизнес-процесса. Каждое состояние должно иметь уникальный идентификатор, который в дальнейшем используется для описания шагов.
Шаги описывают действия перехода из одного состояния в другое. Можно настроить действия в различном направлении, которое продвигает процесс вперед, либо возвращает назад. Верхнее состояние считается стартовым для процесса. Процесс согласования заканчивается в том случае, если из текущего состояние нет н одного шага для перехода в следующее состояние.
1 "schema": {
2 "states": [
3 …
4 ],
5 "steps": [
6 …
7 ],
8 "startStateId": 1
9 }
Настройка состояний (states)
1 "states": [
2 {
3 "localizedName": {
4 "defaultValue": "",
5 "items": [
6 {
7 "language": "ru",
8 "value": "Рассмотрение и согласование документов"
9 },
10 {
11 "language": "en",
12 "value": "Рассмотрение и согласование документов"
13 }
14 ]
15 },
16 "icon": null,
17 "dataAvailabilitySettings": {
18 "disableEdit": false
19 },
20 "subProcesses": [],
21 "regulation": {
22 "years": null,
23 "quarters": null,
24 "months": null,
25 "days": 5,
26 "hours": null,
27 "discriminator": "TimePeriodStateRegulationModel",
28 "expiringNotificationPeriodMinutes": null
29 },
30 "id": 1,
31 "name": "Рассмотрение и согласование документов"
32 },
33 {
34 "localizedName": {
35 "defaultValue": "",
36 "items": [
37 {
38 "language": "ru",
39 "value": "Рассмотрение завершено"
40 },
41 {
42 "language": "en",
43 "value": "Рассмотрение завершено"
44 }
45 ]
46 },
47 "icon": null,
48 "dataAvailabilitySettings": {
49 "disableEdit": true
50 },
51 "subProcesses": [],
52 "id": 2,
53 "name": "Рассмотрение завершено"
54 }
55 ]
Основные свойства настройки состояний:
Id – идентификатор состояния
localizedName – наименование состояния, можно настроить локализацию на английском и русском языках.
localizedComment – комментарий для состояния. Можно использовать как дополнительное свойство, которое будет, например, относить состояние к определенному этапу.
subProcesses – настройка подпроцессов
Для состояния можно настроить несколько подпроцессов. Доступны следующие настройки:
- localizedName - наименование подпроцесса, которое будет выводиться в списке действий для состояния. Можно настроить локализацию на английском и русском языках.
- workflowId - идентификатор объекта согласования, который будет запускаться как подпроцесс.
- parameterMappings - настройка связи значения параметра основного процесса и параметра подпроцесса.
- subProcessNameTemplate - настройка шаблона для выводимого наименования подпроцесса. Применяется настройка только в источниках согласования. Добавлены подстановки для SubProcessNameTemplate:
- SubProcessName - наименование подпроцесса из модели родительского процесса
- StateName - наименование текущего состояния подпроцесса
1 "subProcesses": [
2 {
3 "workflowId": 172492,
4 "name": "Подпроцесс 1",
5 "parameterMappings": [],
6 "subProcessNameTemplate": "%SubProcessName% - %StateName%"
7 },
8 {
9 "workflowId": 172488,
10 "name": "Подпроцесс 2",
11 "parameterMappings": [],
12 "subProcessNameTemplate": null
13 }
14 ]
!Важно: Подпроцессы не имеют схождений с основным процессом, запускаются только вручную и выполняются параллельно.
1 "subProcesses": [
2 {
3 "workflowId": 115022,
4 "name": "Рассмотреть и согласовать документы",
5 "localizedName": {
6 "defaultValue": "Рассмотреть и согласовать документы",
7 "items": [
8 {
9 "language": "ru",
10 "value": "Рассмотреть и согласовать документы"
11 },
12 {
13 "language": "en",
14 "value": "Рассмотреть и согласовать документы"
15 }
16 ]
17 },
18 "parameterMappings": [
19 {
20 "parentProcessParameterId": 1,
21 "subProcessParameterId": 1
22 }
23 ]
24 }
25 ]
Regulation – настройка регламента выполнения задачи (состояния). В качестве регламента можно:
1. задать дату, к моменту которой должно быть завершено текущее состояние процесса
1 "regulation": {
2 "finishedDate": "2021-10-01T00:00:00.000Z",
3 "discriminator": "FixedStateRegulationModel",
4 "expiringNotificationPeriodMinutes": null
5 }
2. задать период времени для завершения состояния (год, квартал, месяц, день, час)
1 "regulation": {
2 "years": null,
3 "quarters": null,
4 "months": null,
5 "days": 1,
6 "hours": null,
7 "discriminator": "TimePeriodStateRegulationModel",
8 "expiringNotificationPeriodMinutes": 300
9 }
!Важно: Свойство expiringNotificationPeriodMinutes отвечает за рассылку уведомлений при приближении срока выполнения. Если минуты заданы, то за указанное время будет выслано уведомление, которое указано в notifications в разделе regulation. Если данное свойство null, то уведомление при приближении срока отправляться не будет.
dataAvailabilitySettings – настройка, которая отвечает за блокировку редактирования данных при запущенном процессе. По умолчанию блокирует "disableEdit": false
Дополнительные настройки:
ProcessAdminRole - настройка в config, в которой можно указать название роли, с которой пользователи будут иметь возможности перейти из любого состояния в любое другое. По умолчанию значение process_admin. В случае если пользователь будет обладать ролью ProcessAdminRole , то ему будут доступны генерируемые шаги с отрицательными идентификаторами, генерируемые шаги из схемы процесса будут ему не доступны.
!Важно: если администратор открыл конструктор для выполнения шага, и, до того как он выполнил один из них, кто то изменит структуру процесса (изменит последовательность или состав состояний), администратор может попасть не в то состояние, которое ожидал. Администратору необходимо выполнить шаг ещё раз, чтобы совершился корректный переход.
Настройка шагов, действий перехода из одного состояния в другое (steps)
1 "steps": [
2 {
3 "localizedName": {
4 "defaultValue": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки",
5 "items": [
6 {
7 "language": "ru",
8 "value": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки"
9 },
10 {
11 "language": "en",
12 "value": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки"
13 }
14 ]
15 },
16 "fromStateId": 1,
17 "toStateId": 2,
18 "id": 1,
19 "name": "Провести анализ материалов заявки и Подготовить заключение о результатах анализа заявки"
20 }
21 ]
Основные свойства настройки действий:
Id – идентификатор действия
localizedName – наименование состояния, можно настроить локализацию на английском и русском языках
fromStateId – идентификатор состояния, из которого совершается действие
toStateId - идентификатор состояния, в которое совершается действие