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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Содержимое страницы заменено на «Страница в разработке»)
Метка: замена
 
(не показано 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).

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

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

JSON-модель схемы согласования

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

Пример JSON-модели состояний

Основные свойства настройки состояний:

Id – идентификатор состояния

localizedName – наименование состояния, можно настроить локализацию на английском и русском языках.

localizedComment – комментарий для состояния. Можно использовать как дополнительное свойство, которое будет, например, относить состояние к определенному этапу.

subProcesses – настройка подпроцессов
Для состояния можно настроить несколько подпроцессов. Доступны следующие настройки:

  • localizedName - наименование подпроцесса, которое будет выводиться в списке действий для состояния. Можно настроить локализацию на английском и русском языках.
  • workflowId - идентификатор объекта согласования, который будет запускаться как подпроцесс.
  • parameterMappings - настройка связи значения параметра основного процесса и параметра подпроцесса.
  • subProcessNameTemplate - настройка шаблона для выводимого наименования подпроцесса. Применяется настройка только в источниках согласования. Добавлены подстановки для SubProcessNameTemplate:

- SubProcessName - наименование подпроцесса из модели родительского процесса
- StateName - наименование текущего состояния подпроцесса

JSON применения настройки SubProcessNameTemplate

!Важно: Подпроцессы не имеют схождений с основным процессом, запускаются только вручную и выполняются параллельно.

JSON-модель подпроцесса

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

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

JSON пример

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

JSON пример

!Важно: Свойство expiringNotificationPeriodMinutes отвечает за рассылку уведомлений при приближении срока выполнения. Если минуты заданы, то за указанное время будет выслано уведомление, которое указано в notifications в разделе regulation. Если данное свойство null, то уведомление при приближении срока отправляться не будет.

dataAvailabilitySettings – настройка, которая отвечает за блокировку редактирования данных при запущенном процессе. По умолчанию блокирует "disableEdit": false

Дополнительные настройки:
ProcessAdminRole - настройка в config, в которой можно указать название роли, с которой пользователи будут иметь возможности перейти из любого состояния в любое другое. По умолчанию значение process_admin. В случае если пользователь будет обладать ролью ProcessAdminRole , то ему будут доступны генерируемые шаги с отрицательными идентификаторами, генерируемые шаги из схемы процесса будут ему не доступны.
!Важно: если администратор открыл конструктор для выполнения шага, и, до того как он выполнил один из них, кто то изменит структуру процесса (изменит последовательность или состав состояний), администратор может попасть не в то состояние, которое ожидал. Администратору необходимо выполнить шаг ещё раз, чтобы совершился корректный переход.

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

Пример JSON-модели действий

Основные свойства настройки действий:

Id – идентификатор действия

localizedName – наименование состояния, можно настроить локализацию на английском и русском языках

fromStateId – идентификатор состояния, из которого совершается действие

toStateId - идентификатор состояния, в которое совершается действие