Платформа 3V/Согласование: различия между версиями
Строка 68: | Строка 68: | ||
|} | |} | ||
− | Описание регламента выполнения состояния процесса (regulation): | + | Описание регламента выполнения состояния процесса (regulation):<br> |
+ | В результате которого мы получаем значение "'''finishedTime'''": "1970-01-01T00:00:00Z" | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Свойство !! Описание | + | ! Свойство !! !! !! Описание !! Вводные данные !!Результат |
|- | |- | ||
− | |discriminator|| Задаём вид фиксации даты | + | |discriminator|| || ||Задаём вид фиксации даты || |
|- | |- | ||
− | | FixedStateRegulationModel|| | + | | ||FixedStateRegulationModel|| || Фиксированная дата в конечном виде ||str || "'''2021-20-09T15:34:48Z'''" |
|- | |- | ||
− | | TimePeriodStateRegulationModel|| Дата получаемая путём сдвига от текущей с отсчётом от полуночи | + | | ||TimePeriodStateRegulationModel|| || Дата получаемая путём сдвига от текущей с отсчётом от полуночи|| |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | |Years || | + | | || || Years || Сдвиг по годам ||int|| "'''2021'''-01-01T00:00:00Z" |
|- | |- | ||
− | |Quarters || | + | | || ||Quarters || Сдвиг по кварталам ||int||"2021-'''07'''-01T00:00:00Z" |
|- | |- | ||
− | |Months || | + | | || ||Months || Сдвиг по месяцам||int||"2021-'''09'''-01T00:00:00Z" |
|- | |- | ||
− | |Days || | + | | || ||Days || Сдвиг по дням||int||"2021-09-'''24'''T00:00:00Z" |
|- | |- | ||
− | + | | || ||Hours || Сдвиг по часам||int||"2021-09-24T'''08''':00:00Z" | |
− | |||
− | |||
− | |||
− | | | ||
− | | | ||
− | | | ||
− | | || "2021- | ||
|} | |} | ||
+ | |||
+ | |||
'''Пример согласования:''' | '''Пример согласования:''' | ||
Версия 13:22, 20 сентября 2021
Согласование - это объект системы, описывающий жизненный цикл сущности при помощи состояний (states) и переходов/шагов (steps). Согласования используются для построения бизнес-процессов, при этом состояние описывает устойчивое положение сущности в рамках жизненного цикла, а переход описывает изменение одного состояния на другое.
Общие сведения
Описание атрибутов состояния (state):
Свойство | Описание |
---|---|
id | Идентификатор состояния |
name | Название |
icon | Иконка используемая для визуального обозначения состояния |
dataAvailabilitySettings | Настройки доступности данных для состояния процесса |
regulation | Регламент выполнения состояния процесса. |
Описание атрибутов перехода (step):
Свойство | Описание |
---|---|
fromStateId | Состояние из которого переходит объект |
toStateId | Состояние в которое переходит объект |
id | Идентификатор перехода |
name | Название перехода |
Для гибкой настройки согласования в системе предусмотрена настройка прав доступа (permissions) на переходы. В зависимости от прав доступа для разных ролей может быть настроен персональный набор переходов.
Описание атрибутов прав доступа (permission):
Свойство | Описание |
---|---|
stepId | Состояние из которого переходит объект |
subjectId | Состояние в которое переходит объект |
type | Идентификатор перехода |
Описание регламента выполнения состояния процесса (regulation):
В результате которого мы получаем значение "finishedTime": "1970-01-01T00:00:00Z"
Свойство | Описание | Вводные данные | Результат | ||
---|---|---|---|---|---|
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-24T00:00:00Z" | ||
Hours | Сдвиг по часам | int | "2021-09-24T08:00:00Z" |
Пример согласования:
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 "regulation": {
24 "discriminator": "TimePeriodStateRegulationModel",
25 "Years" : 8,
26 "Quarters" : 2,
27 "Months": 2,
28 "Days": 2,
29 "hours": 5
30 },
31 "name": "На согласовании"
32 },
33 {
34 "icon": {
35 "type": "svg",
36 "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>"
37 },
38 "id": 3,
39 "dataAvailabilitySettings": {
40 "disableEdit": true
41 },
42 "regulation":{
43 "discriminator": "FixedStateRegulationModel",
44 "finishedDate": "2021-09-17T10:45:00Z"
45 },
46 "name": "Согласовано"
47 },
48 {
49 "icon": {
50 "type": "svg",
51 "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>"
52 },
53 "id": 4,
54 "dataAvailabilitySettings": null,
55 "name": "На доработке"
56 }
57 ],
58 "steps": [
59 {
60 "fromStateId": 1,
61 "toStateId": 2,
62 "id": 1,
63 "name": "Отправить на согласование"
64 },
65 {
66 "fromStateId": 2,
67 "toStateId": 3,
68 "id": 2,
69 "name": "Согласовать"
70 },
71 {
72 "fromStateId": 2,
73 "toStateId": 4,
74 "id": 3,
75 "name": "Отклонить"
76 },
77 {
78 "fromStateId": 4,
79 "toStateId": 2,
80 "id": 4,
81 "name": "Вернуть на согласование"
82 },
83 {
84 "fromStateId": 3,
85 "toStateId": 1,
86 "id": 5,
87 "name": "Вернуть на Черновик"
88 }
89 ],
90 "startStateId": 1
91 },
92 "permissions": [
93 {
94 "stepId": 1,
95 "subjectId": "USERS",
96 "type": "Allow"
97 },
98 {
99 "stepId": 2,
100 "subjectId": "APPROVERS",
101 "type": "Allow"
102 },
103 {
104 "stepId": 3,
105 "subjectId": "APPROVERS",
106 "type": "Allow"
107 },
108 {
109 "stepId": 4,
110 "subjectId": "USERS",
111 "type": "Allow"
112 },
113 {
114 "stepId": 5,
115 "subjectId": "APPROVERS",
116 "type": "Allow"
117 }
118 ],
119 "parameters": {
120 "definitions": [
121 {
122 "id": 1,
123 "name": "Сотрудники",
124 "dictionaryId": 19,
125 "discriminator": "DictionaryParameterModel"
126 },
127 {
128 "id": 2,
129 "name": "Оценщики",
130 "dictionaryId": 126,
131 "discriminator": "DictionaryParameterModel"
132 },
133 {
134 "id": 3,
135 "name": "Квартал оценки",
136 "dictionaryId": 120,
137 "discriminator": "DictionaryParameterModel"
138 }
139 ],
140 "defaultValues": [
141 {
142 "parameterId": 1,
143 "value": 2
144 },
145 {
146 "parameterId": 2,
147 "value": 2
148 },
149 {
150 "parameterId": 3,
151 "value": 320210101
152 }
153 ]
154 },
155 "notifications": null
156 },
157 "forceWorkflowNotificationTemplate": false
158 }