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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 10 промежуточных версий 2 участников)
Строка 1: Строка 1:
'''Согласование''' - это объект системы, описывающий жизненный цикл сущности при помощи состояний (states) и переходов/шагов (steps).
+
{{DISPLAYTITLE:Согласование}}
Согласования используются для построения бизнес-процессов, при этом состояние описывает устойчивое положение сущности в рамках жизненного цикла, а переход описывает изменение одного состояния на другое.
+
[[Файл:Согласование лого единообразное.png|40px|link=Платформа 3V/Согласование]]  '''Согласование''' - это объект системы, описывающий жизненный цикл сущности при помощи состояний (states) и переходов/шагов (steps).
 
 
  
 
<div class="toccolours mw-collapsible" style="width:600px; background:#FFFFFF;">
 
<div class="toccolours mw-collapsible" style="width:600px; background:#FFFFFF;">
<div style="color:#CC2200">[[Платформа_3V/Согласование/Как_настроить_согласование%3F|<font style="color: #CC2200">Как настроить согласование?</font>]]</div>
+
<div style="color:#CC2200">[[Платформа_3V/Согласование/Как_настроить_согласование|<font style="color: #0645AD">Как настроить согласование?</font>]]</div>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 
+
<div style="width:600px;">
#<div style="color:#CC2200">[[Платформа_3V/Согласование/Параметры|<font style="color: #CC2200">Определить объекты согласования (параметры)</font>]]</div>
+
1. [[Платформа_3V/Согласование/Параметры|<font style="color: #0645AD">Определить объекты согласования (параметры)</font>]]
#<div style="color:#CC2200">[[Платформа_3V/Согласование/Статусы_и_шаги|<font style="color: #CC2200">Настроить статусы и процесс перехода между статусами (шаги)</font>]]</div>
+
</div>
#<div style="color:#CC2200">[[Платформа_3V/Согласование/Права_доступа_и_шаги|<font style="color: #CC2200">Ограничить права доступа для перехода между статусами</font>]]</div>
+
<div style="width:600px;">
#<div style="color:#CC2200">[[Платформа_3V/Согласование/Настройка_уведомлений|<font style="color: #0645AD">Настроить отправку уведомлений при переходе между статусами</font>]]</div>
+
2. [[Платформа_3V/Согласование/Статусы_и_шаги|<font style="color: #0645AD">Настроить состояния и действия перехода между состояниями (шаги)</font>]]
#<div style="color:#CC2200">[[Платформа_3V/Формы/Форма объекта/Согласование|<font style="color: #CC2200">Подключить согласование в форму объекта</font>]]</div>
+
</div>
#<div style="color:#CC2200">[[Платформа_3V/Отчет/6._Дополнительные_действия_в_отчете/Подключение_согласования_к_отчету|<font style="color: #0645AD">Подключить согласование в отчет</font>]]</div>
+
<div style="width:600px;">
#<div style="color:#CC2200">[[Платформа_3V/Показатель/Показатели_на_стороннем_API|<font style="color: #0645AD">Вывод информации о статусах в платформе (показатель на согласовании)</font>]]</div>
+
3. [[Платформа_3V/Согласование/Права_доступа_и_шаги|<font style="color: #0645AD">Настроить права доступа для действий - переходов между состояниями</font>]]
 
</div>
 
</div>
 +
<div style="width:600px;">
 +
4. [[Платформа_3V/Согласование/Настройка_уведомлений|<font style="color: #0645AD">Настроить отправку уведомлений</font>]]
 
</div>
 
</div>
 +
<div style="width:600px;">
 +
5. Использование в других объектах 3V
 +
#[[Платформа_3V/Согласование/Подключение_согласования_в_форму|<font style="color: #0645AD">Подключить согласование в форму объекта</font>]]
 +
#[[Платформа_3V/Отчет/6._Дополнительные_действия_в_отчете/Подключение_согласования_к_отчету|<font style="color: #0645AD">Подключить согласование в отчет</font>]]
 +
#[[Платформа_3V/Показатель/Показатели_на_стороннем_API|<font style="color: #0645AD">Вывод информации о статусах в платформе (показатель на согласовании)</font>]]
 
</div>
 
</div>
 +
<div style="width:600px;">
 +
6. [[Платформа_3V/Согласование/Реестр_процессов|<font style="color: #0645AD">Настроить реестр процессов</font>]]
 
</div>
 
</div>
 +
<div style="width:600px;">
 +
7. [[Платформа_3V/Согласование/Мониторинг_процесса|<font style="color: #0645AD">Настроить мониторинг процесса</font>]]
 
</div>
 
</div>
 +
<div style="width:600px;">
 +
8. [[Платформа_3V/Согласование/История_согласования|<font style="color: #0645AD">Настроить источник истории согласования</font>]]
 
</div>
 
</div>
 
</div>
 
</div>
 
</div>
 
</div>
  
== Общие сведения ==
 
Описание атрибутов состояния (state):
 
{| class="wikitable"
 
|-
 
! Свойство !! Описание
 
|-
 
| id || Идентификатор состояния
 
|-
 
| name || Название
 
|-
 
| icon || Иконка используемая для визуального обозначения состояния
 
|-
 
| dataAvailabilitySettings || Настройки доступности данных для состояния процесса
 
|-
 
| regulation || Регламент выполнения состояния процесса.
 
|}
 
  
Описание атрибутов перехода (step):
+
==== Для чего? ====
{| class="wikitable"
 
|-
 
! Свойство !! Описание
 
|-
 
| fromStateId || Состояние из которого переходит объект
 
|-
 
| toStateId || Состояние в которое переходит объект
 
|-
 
| id|| Идентификатор перехода
 
|-
 
| name|| Название перехода
 
|}
 
 
 
Для гибкой настройки согласования в системе предусмотрена настройка прав доступа (permissions) на переходы. В зависимости от прав доступа для разных ролей может быть настроен персональный набор переходов.
 
 
 
Описание атрибутов прав доступа (permission):
 
{| class="wikitable"
 
|-
 
! Свойство !! Описание
 
|-
 
| stepId || Состояние из которого переходит объект
 
|-
 
| subjectId || Состояние в которое переходит объект
 
|-
 
| type || Идентификатор перехода
 
|}
 
 
 
Описание регламента выполнения состояния процесса (regulation):<br>
 
В результате которого мы получаем значение "'''finishedTime'''": "1970-01-01T00:00:00Z"
 
{| class="wikitable"
 
|-
 
! Свойство !! !! !! Описание !! Вводные данные !!Результат
 
|-
 
|discriminator|| || ||Задаём вид фиксации даты ||
 
|-
 
| ||FixedStateRegulationModel|| || Фиксированная дата в конечном виде ||str || "'''2021-20-09T15:34:48Z'''"
 
|-
 
| ||TimePeriodStateRegulationModel|| || Дата получаемая путём сдвига от текущей с отсчётом от полуночи||
 
|-
 
|  || || Years || Сдвиг по годам ||int|| "'''2021'''-01-01T00:00:00Z"
 
|-
 
|  || ||Quarters ||  Сдвиг по кварталам ||int||"2021-'''07'''-01T00:00:00Z"
 
|-
 
|  || ||Months ||  Сдвиг по месяцам||int||"2021-'''09'''-01T00:00:00Z"
 
|-
 
|  || ||Days ||  Сдвиг по дням||int||"2021-09-'''24'''T00:00:00Z"
 
|-
 
|  || ||Hours ||  Сдвиг по часам||int||"2021-09-24T'''08''':00:00Z"
 
|}
 
  
 +
Согласования используются для построения бизнес-процессов, при этом состояние описывает устойчивое положение сущности в рамках жизненного цикла, а переход описывает изменение одного состояния на другое.
 +
<br><br>
 +
==== Из чего состоит? ====
  
'''Пример согласования:'''
+
Согласование состоит из следующих частей:
 +
<br><br>
 +
1. '''Состояния''' (states) - это задачи процесса согласования, которые могут иметь описание регламента выполнения. Так же состояния могут содержать подпроцессы.
 +
Подпроцессы – это отдельные объекты согласования, которые запускаются вручную с заданием параметров, либо с параметрами по умолчанию и выполняются параллельно. В текущей реализации не имеют схождений с основным процессом.<br>
 +
2. '''Шаги''' (steps) - это настраиваемый переход из одного состояния у другое.<br>
  
<syntaxhighlight lang="JSON" line>
+
Так же для согласования доступны такие разделы настроек как:<br>
{
+
* параметры, с которыми будет запускаться процесс согласования,<br>
  "template": {
+
* права доступа, в соответствии с которыми организуется доступ к шагам процесса согласования,<br>
    "schema": {
+
* уведомления, рассылка писем на электронную почту.<br><br>
      "states": [
+
Процесс запускается по переданному параметру в объект согласования. После запуска создается экземпляр процесса согласования. Подключить согласование для его запуска и работы с ним можно в объектах «Форма» и «Отчет».
        {
 
          "icon": {
 
            "type": "svg",
 
            "data": "<svg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M0 10L1.19249e-07 0L10 1.19249e-07L6 5L10 10L0 10Z' fill='#F08513'/></svg>"
 
          },
 
          "id": 1,
 
          "dataAvailabilitySettings": null,
 
          "name": "Черновик"
 
        },
 
        {
 
          "icon": {
 
            "type": "svg",
 
            "data": "<svg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M0 10L1.19249e-07 0L10 1.19249e-07L6 5L10 10L0 10Z' fill='#0066DD'/></svg>"
 
          },
 
          "id": 2,
 
          "dataAvailabilitySettings": {
 
            "disableEdit": true
 
          },
 
          "regulation": {
 
            "discriminator": "TimePeriodStateRegulationModel",
 
            "Years" : 8,
 
            "Quarters" : 2,
 
            "Months": 2,
 
            "Days": 2,
 
            "hours": 5
 
          },
 
          "name": "На согласовании"
 
        },
 
        {
 
          "icon": {
 
            "type": "svg",
 
            "data": "<svg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M0 10L1.19249e-07 0L10 1.19249e-07L6 5L10 10L0 10Z' fill='#05C19F'/></svg>"
 
          },
 
          "id": 3,
 
          "dataAvailabilitySettings": {
 
            "disableEdit": true
 
          },
 
          "regulation":{
 
              "discriminator": "FixedStateRegulationModel",
 
              "finishedDate": "2021-09-17T10:45:00Z"
 
          },
 
          "name": "Согласовано"
 
        },
 
        {
 
          "icon": {
 
            "type": "svg",
 
            "data": "<svg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M0 10L1.19249e-07 0L10 1.19249e-07L6 5L10 10L0 10Z' fill='#8053DF'/></svg>"
 
          },
 
          "id": 4,
 
          "dataAvailabilitySettings": null,
 
          "name": "На доработке"
 
        }
 
      ],
 
      "steps": [
 
        {
 
          "fromStateId": 1,
 
          "toStateId": 2,
 
          "id": 1,
 
          "name": "Отправить на согласование"
 
        },
 
        {
 
          "fromStateId": 2,
 
          "toStateId": 3,
 
          "id": 2,
 
          "name": "Согласовать"
 
        },
 
        {
 
          "fromStateId": 2,
 
          "toStateId": 4,
 
          "id": 3,
 
          "name": "Отклонить"
 
        },
 
        {
 
          "fromStateId": 4,
 
          "toStateId": 2,
 
          "id": 4,
 
          "name": "Вернуть на согласование"
 
        },
 
        {
 
          "fromStateId": 3,
 
          "toStateId": 1,
 
          "id": 5,
 
          "name": "Вернуть на Черновик"
 
        }
 
      ],
 
      "startStateId": 1
 
    },
 
    "permissions": [
 
      {
 
        "stepId": 1,
 
        "subjectId": "USERS",
 
        "type": "Allow"
 
      },
 
      {
 
        "stepId": 2,
 
        "subjectId": "APPROVERS",
 
        "type": "Allow"
 
      },
 
      {
 
        "stepId": 3,
 
        "subjectId": "APPROVERS",
 
        "type": "Allow"
 
      },
 
      {
 
        "stepId": 4,
 
        "subjectId": "USERS",
 
        "type": "Allow"
 
      },
 
      {
 
        "stepId": 5,
 
        "subjectId": "APPROVERS",
 
        "type": "Allow"
 
      }
 
    ],
 
    "parameters": {
 
      "definitions": [
 
        {
 
          "id": 1,
 
          "name": "Сотрудники",
 
          "dictionaryId": 19,
 
          "discriminator": "DictionaryParameterModel"
 
        },
 
        {
 
          "id": 2,
 
          "name": "Оценщики",
 
          "dictionaryId": 126,
 
          "discriminator": "DictionaryParameterModel"
 
        },
 
        {
 
          "id": 3,
 
          "name": "Квартал оценки",
 
          "dictionaryId": 120,
 
          "discriminator": "DictionaryParameterModel"
 
        }
 
      ],
 
      "defaultValues": [
 
        {
 
          "parameterId": 1,
 
          "value": 2
 
        },
 
        {
 
          "parameterId": 2,
 
          "value": 2
 
        },
 
        {
 
          "parameterId": 3,
 
          "value": 320210101
 
        }
 
      ]
 
    },
 
    "notifications": null
 
  },
 
  "forceWorkflowNotificationTemplate": false
 
}
 
</syntaxhighlight>
 

Текущая версия на 07:14, 18 апреля 2022

Согласование лого единообразное.png Согласование - это объект системы, описывающий жизненный цикл сущности при помощи состояний (states) и переходов/шагов (steps).


Для чего?

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

Из чего состоит?

Согласование состоит из следующих частей:

1. Состояния (states) - это задачи процесса согласования, которые могут иметь описание регламента выполнения. Так же состояния могут содержать подпроцессы. Подпроцессы – это отдельные объекты согласования, которые запускаются вручную с заданием параметров, либо с параметрами по умолчанию и выполняются параллельно. В текущей реализации не имеют схождений с основным процессом.
2. Шаги (steps) - это настраиваемый переход из одного состояния у другое.

Так же для согласования доступны такие разделы настроек как:

  • параметры, с которыми будет запускаться процесс согласования,
  • права доступа, в соответствии с которыми организуется доступ к шагам процесса согласования,
  • уведомления, рассылка писем на электронную почту.

Процесс запускается по переданному параметру в объект согласования. После запуска создается экземпляр процесса согласования. Подключить согласование для его запуска и работы с ним можно в объектах «Форма» и «Отчет».