Платформа 3V/Согласование/Статусы и шаги: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Содержимое страницы заменено на «Страница в разработке»)
Метка: замена
Строка 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>
 +
<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": "Рассмотреть и согласовать документы"
 +
                  }
 +
                ]
 +
              }
 +
            }
 +
          ]
 +
</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>
 +
 
 +
 
 +
== Настройка шагов, действий перехода из одного состояния в другое (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>

Версия 10:52, 25 ноября 2021

Схема согласования состоит из состояний (states) и шагов (steps).

В качестве состояния прописываются все задачи, которые необходимы для прохождения бизнес-процесса. Каждое состояние должно иметь уникальный идентификатор, который в дальнейшем используется для описания шагов.

Шаги описывают действия перехода из одного состояния в другое. Можно настроить действия в различном направлении, которое продвигает процесс вперед, либо возвращает назад. Верхнее состояние считается стартовым для процесса. Процесс согласования заканчивается в том случае, если из текущего состояние нет н одного шага для перехода в следующее состояние.

JSON-модель схемы согласования
1 "schema": {
2       "states": [
3        
4       ],
5       "steps": [
6         
7       ],
8       "startStateId": 1
9     }

Настройка состояний (states)

Пример JSON-модели состояний
 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 – задание идентификатора и наименование подпроцесса состояния.

JSON-модель подпроцесса
 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             }
19           ]

Regulation – настройка регламента выполнения задачи (состояния). В качестве регламента можно:

1. задать дату, к моменту которой должно быть завершено текущее состояние процесса

JSON пример
1 "regulation": {
2             "finishedDate": "2021-10-01T00:00:00.000Z",
3             "discriminator": "FixedStateRegulationModel",
4             "expiringNotificationPeriodMinutes": null
5           }

2. задать период времени для завершения состояния (год, квартал, месяц, день, час)

JSON пример
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


Настройка шагов, действий перехода из одного состояния в другое (steps)

Пример JSON-модели действий
 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 - идентификатор состояния, в которое совершается действие