Платформа 3V/Согласование
< Платформа 3V
Перейти к навигации
Перейти к поиску
Версия от 08:09, 28 июня 2021; V.degtyarev (обсуждение | вклад)
Согласование - это объект системы, описывающий жизненный цикл сущности при помощи состояний (states) и переходов (steps). Согласования используются для построения бизнес-процессов, при этом состояние описывает устойчивое положение сущности в рамках жизненного цикла, а переход описывает изменение одного состояния на другое.
Описание атрибутов состояния (state):
Свойство | Описание |
---|---|
id | Идентификатор состояния |
name | Название |
icon | Иконка используемая для визуального обозначения состояния |
dataAvailabilitySettings | Настройки доступности данных для состояния процесса |
Описание атрибутов перехода (step):
Свойство | Описание |
---|---|
fromStateId | Состояние из которого переходит объект |
toStateId | Состояние в которое переходит объект |
id | Идентификатор перехода |
name | Название перехода |
Для гибкой настройки согласования в системе предусмотрена настройка прав доступа (permissions) на переходы. В зависимости от прав доступа для разных ролей может быть настроен персональный набор переходов.
Описание атрибутов прав доступа (permission):
Свойство | Описание |
---|---|
stepId | Состояние из которого переходит объект |
subjectId | Состояние в которое переходит объект |
type | Идентификатор перехода |
Пример согласования:
1 {
2 "template": {
3 "schema": {
4 "states": [
5 {
6 "icon": {
7 "type": "svg",
8 "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>"
9 },
10 "id": 1,
11 "dataAvailabilitySettings": null,
12 "name": "Черновик"
13 },
14 {
15 "icon": {
16 "type": "svg",
17 "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>"
18 },
19 "id": 2,
20 "dataAvailabilitySettings": {
21 "disableEdit": true
22 },
23 "name": "На согласовании"
24 },
25 {
26 "icon": {
27 "type": "svg",
28 "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>"
29 },
30 "id": 3,
31 "dataAvailabilitySettings": {
32 "disableEdit": true
33 },
34 "name": "Согласовано"
35 },
36 {
37 "icon": {
38 "type": "svg",
39 "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>"
40 },
41 "id": 4,
42 "dataAvailabilitySettings": null,
43 "name": "На доработке"
44 }
45 ],
46 "steps": [
47 {
48 "fromStateId": 1,
49 "toStateId": 2,
50 "id": 1,
51 "name": "Отправить на согласование"
52 },
53 {
54 "fromStateId": 2,
55 "toStateId": 3,
56 "id": 2,
57 "name": "Согласовать"
58 },
59 {
60 "fromStateId": 2,
61 "toStateId": 4,
62 "id": 3,
63 "name": "Отклонить"
64 },
65 {
66 "fromStateId": 4,
67 "toStateId": 2,
68 "id": 4,
69 "name": "Вернуть на согласование"
70 },
71 {
72 "fromStateId": 3,
73 "toStateId": 1,
74 "id": 5,
75 "name": "Вернуть на Черновик"
76 }
77 ],
78 "startStateId": 1
79 },
80 "permissions": [
81 {
82 "stepId": 1,
83 "subjectId": "USERS",
84 "type": "Allow"
85 },
86 {
87 "stepId": 2,
88 "subjectId": "APPROVERS",
89 "type": "Allow"
90 },
91 {
92 "stepId": 3,
93 "subjectId": "APPROVERS",
94 "type": "Allow"
95 },
96 {
97 "stepId": 4,
98 "subjectId": "USERS",
99 "type": "Allow"
100 },
101 {
102 "stepId": 5,
103 "subjectId": "APPROVERS",
104 "type": "Allow"
105 }
106 ],
107 "parameters": {
108 "definitions": [
109 {
110 "id": 1,
111 "name": "Сотрудники",
112 "dictionaryId": 19,
113 "discriminator": "DictionaryParameterModel"
114 },
115 {
116 "id": 2,
117 "name": "Оценщики",
118 "dictionaryId": 126,
119 "discriminator": "DictionaryParameterModel"
120 },
121 {
122 "id": 3,
123 "name": "Квартал оценки",
124 "dictionaryId": 120,
125 "discriminator": "DictionaryParameterModel"
126 }
127 ],
128 "defaultValues": [
129 {
130 "parameterId": 1,
131 "value": 2
132 },
133 {
134 "parameterId": 2,
135 "value": 2
136 },
137 {
138 "parameterId": 3,
139 "value": 320210101
140 }
141 ]
142 },
143 "notifications": null
144 },
145 "forceWorkflowNotificationTemplate": false
146 }