Платформа 3V/Формы/Источники данных/Согласование/Выполнение действий при изменении статуса согласования: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Версия 07:58, 1 апреля 2021


Коллекция действий выполняемых при изменении статуса согласования (StateChangeActions)

StateChangeActions - это коллекция идентификаторов действий по условию ConditionalAction, которые выполняются при изменении состояния согласования.

 1 {
 2   ...
 3   "entryDataSources": [
 4     {
 5       ... 
 6       "StateChangeActions": [
 7         111,
 8         222
 9       ],
10       "discriminator": "WorkflowDataSource"
11     }
12   ],
13   ...
14 }

BinaryConditionWorkflowContainsStates

BinaryConditionWorkflowContainsStates - Условие для вычисления вхождение текущего состояния процесса согласования WorkflowSourceId в коллекцию состояний WorkflowStateIds.
WorkflowSourceId - Идентификатор источника согласования.
WorkflowStateIds - Коллекция идентификаторов состояний согласования при которых результат проверки будет положительным.

 1 {
 2   ...
 3   "BinaryConditionsRules": [
 4     {
 5       "id": 1,
 6       "BinaryCondition": {
 7         "WorkflowSourceId": 2,
 8         "WorkflowStateIds": [
 9           4
10         ],
11         "discriminator": "BinaryConditionWorkflowContainsStates"
12       }
13     }
14   ]
15   ...
16 }

Пример

В данном примере при выполнении шага согласования с идентификатором 3 в справочник будет добавлена запись с наименованием "Переход в состояние 4" (т.к. Шаг 3 - это переход из статуса 2 в 4, смотри пример согласования), а при выполнении шага с идентификатором 4 будет добавлена запись с наименованием "Переход в состояние 2", при условии что описанные условия BinaryConditionWorkflowContainsStates будут возвращать положительный результат.

Пример согласования (Json)
 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           "name": "Черновик"
12         },
13         {
14           "icon": {
15             "type": "svg",
16             "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>"
17           },
18           "id": 2,
19           "name": "На согласовании"
20         },
21         {
22           "icon": {
23             "type": "svg",
24             "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>"
25           },
26           "id": 3,
27           "name": "Согласовано"
28         },
29         {
30           "icon": {
31             "type": "svg",
32             "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>"
33           },
34           "id": 4,
35           "name": "На доработке"
36         }
37       ],
38       "steps": [
39         {
40           "fromStateId": 1,
41           "toStateId": 2,
42           "id": 1,
43           "name": "Отправить на согласование"
44         },
45         {
46           "fromStateId": 2,
47           "toStateId": 3,
48           "id": 2,
49           "name": "Согласовать"
50         },
51         {
52           "fromStateId": 2,
53           "toStateId": 4,
54           "id": 3,
55           "name": "Вернуть на доработку"
56         },
57         {
58           "fromStateId": 4,
59           "toStateId": 2,
60           "id": 4,
61           "name": "Вернуть на согласование"
62         }
63       ],
64       "startStateId": 1
65     },
66     "permissions": [],
67     "parameters": {
68       "definitions": [
69         {
70           "id": 1,
71           "name": "Сценарии",
72           "discriminator": "SimpleParameterModel"
73         }
74       ],
75       "defaultValues": [
76         {
77           "parameterId": 1,
78           "value": 5
79         }
80       ]
81     }
82   }
83 }
Пример серверной карточки (Json)
  1 {
  2   "name": "Карточка",
  3   "actions": [
  4     {
  5       "instanceId": 1,
  6       "id": 11,
  7       "comment": null,
  8       "discriminator": "RebuildSourceInstanceAction"
  9     },
 10     {
 11       "DictionarySourceId": 1,
 12       "id": 22,
 13       "defaultValues": [
 14         {
 15           "attributeId": 2,
 16           "value": "Переход в состояние 4"
 17         }
 18       ],
 19       "dictionaryId": 750,
 20       "discriminator": "CreateNewElementInDictionaryAction"
 21     },
 22     {
 23       "DictionarySourceId": 1,
 24       "id": 44,
 25       "defaultValues": [
 26         {
 27           "attributeId": 2,
 28           "value": "Переход в состояние 2"
 29         }
 30       ],
 31       "dictionaryId": 750,
 32       "discriminator": "CreateNewElementInDictionaryAction"
 33     },
 34     {
 35       "instanceId": 1,
 36       "id": 33,
 37       "DataSourcesIds": [
 38         1
 39       ],
 40       "discriminator": "SaveDataSourceAction"
 41     }
 42   ],
 43   "conditionalActions": [
 44     {
 45       "id": 111,
 46       "binaryConditionRuleId": 1,
 47       "actions": [
 48         22,
 49         33,
 50         11
 51       ]
 52     },
 53     {
 54       "id": 222,
 55       "binaryConditionRuleId": 2,
 56       "actions": [
 57         44,
 58         33,
 59         11
 60       ]
 61     }
 62   ],
 63   "BinaryConditionsRules": [
 64     {
 65       "id": 1,
 66       "BinaryCondition": {
 67         "WorkflowSourceId": 2,
 68         "WorkflowStateIds": [
 69           4
 70         ],
 71         "discriminator": "BinaryConditionWorkflowContainsStates"
 72       }
 73     },
 74     {
 75       "id": 2,
 76       "BinaryCondition": {
 77         "WorkflowSourceId": 2,
 78         "WorkflowStateIds": [
 79           2
 80         ],
 81         "discriminator": "BinaryConditionWorkflowContainsStates"
 82       }
 83     }
 84   ],
 85   "uiSources": [
 86     {
 87       "id": 1,
 88       "DataSourceId": 1,
 89       "caption": "Справочник",
 90       "enable": true,
 91       "visible": true,
 92       "discriminator": "DictionarySourceEntry"
 93     },
 94     {
 95       "id": 2,
 96       "WorkflowSourceId": 2,
 97       "caption": "Согласование",
 98       "enable": true,
 99       "visible": true,
100       "discriminator": "WorkflowSourceEntry"
101     }
102   ],
103   "entryDataSources": [
104     {
105       "Id": 1,
106       "dictionaryId": Идентификатор справочника,
107       "name": "Справочник",
108       "isReadOnly": false,
109       "filter": null,
110       "discriminator": "DictionaryDataSource"
111     },
112     {
113       "Id": 2,
114       "WorkflowId": Идентификатор согласования,
115       "name": "Согласование",
116       "isReadOnly": false,
117       "parameters": [
118         {
119           "id": 1,
120           "expressionId": null,
121           "value": 5
122         }
123       ],
124       "StateChangeActions": [
125         111,
126         222
127       ],
128       "discriminator": "WorkflowDataSource"
129     }
130   ],
131   "expressions": [],
132   "parameters": [
133     {
134       "defaultValue": [
135         5
136       ],
137       "id": 1,
138       "name": "Элемент справочника"
139     }
140   ]
141 }