You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Правила из раздела «Обновление хранилища процесса» применяются только при выполнении действия в рамках процесса: если они заданы, то после успешного выполнения действия значения по этим правилам записываются в хранилище.
246
+
Правила из раздела «Обновление хранилища процесса» применяются только при выполнении действия в рамках процесса: после успешного завершения действия значения записываются в хранилище запуска по заданным правилам, **в порядке списка**.
| Цель | Dot-path в хранилище без ведущей точки, например `deploy.job_id` или `notification.items` |
253
+
| Источник | Go-шаблон значения |
252
254
253
-
Другие действия в процессе могут читать сохранённое значение через шаблон `{{ .store.key }}`, где `key` — указанный ключ.
255
+
Другие действия и элементы процесса читают данные через `{{ .store.<путь> }}`. Внутри цикла в шаблонах доступен контекст `{{ .store._loop.* }}`.
254
256
255
-
Если правил нет (список пустой), при выполнении действия в процессе в хранилище ничего не записывается. Данные из хранилища можно использовать в последующих действиях того же процесса через плейсхолдеры `{{ .store.<ключ> }}`. Подробности описаны в разделе [«Хранилище процесса»](../processes/#хранилище-процесса).
257
+
Если правил нет (список пустой), при выполнении действия в процессе в хранилище ничего не записывается.
258
+
259
+
Подробное описание операций, примеры правил, цикл по коллекции и просмотр хранилища — в разделе [«Хранилище процесса»](../processes/store/).
Copy file name to clipboardExpand all lines: content/documentation/admin/processes/overview.ru.md
+47-30Lines changed: 47 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
-
title: Процессы
3
-
menuTitle: Процессы
2
+
title: Обзор
3
+
weight: 10
4
4
---
5
5
6
6
Процессы — это механизм автоматизации сложных бизнес-сценариев, который позволяет создавать визуальные схемы выполнения действий с поддержкой условной логики, параллельного выполнения и обработки ошибок.
@@ -15,7 +15,8 @@ menuTitle: Процессы
15
15
* «Задача» — выполнение конкретного действия.
16
16
* «Эксклюзивный шлюз» — условное ветвление.
17
17
* «Параллельный шлюз» — объединение нескольких веток процесса в одну.
18
-
* «Цикл» — повторение части процесса заданное число раз.
18
+
* «Цикл» — повторение части процесса фиксированное число раз или обход JSON-массива из хранилища.
19
+
* «Шаблон» — вычисление Go-шаблона и запись результата в хранилище процесса.
19
20
* «Примечание» — текстовый блок.
20
21
* «Ошибка» — немедленная остановка процесса со статусом `Failed`.
21
22
* «Конец» — завершение процесса.
@@ -60,10 +61,11 @@ menuTitle: Процессы
60
61
61
62
Эксклюзивный шлюз позволяет настраивать ветвление процесса по условиям. По умолчанию проверяется статус предыдущей задачи, и в зависимости от него выполнение идёт по «успешной» или «неуспешной» ветке.
62
63
63
-
В качестве условий для эксклюзивного шлюза можно задать либо проверку статуса предыдущей задачи, либо проверку параметра из хранилища процесса:
64
+
В качестве условий для эксклюзивного шлюза можно задать либо проверку статуса предыдущей задачи, либо сравнение значений из шаблонов:
64
65
65
-
- Для проверки статуса предыдущей задачи используйте конструкцию `{{ .prev_task.status }}`
66
-
- Для проверки значения переменной из хранилища используйте конструкцию `{{ .store.<название переменной> }}`.
66
+
- Для проверки статуса предыдущей задачи используйте конструкцию `{{ .prev_task.status }}`.
67
+
- Для проверки значения из хранилища — `{{ .store.<путь> }}`, в том числе вложенные ключи: `{{ .store.notification.status }}`.
68
+
- Внутри цикла — поля текущего элемента: `{{ .store._loop.item.scan_type }}`, флаги `{{ .store._loop.first }}` и `{{ .store._loop.last }}`.
67
69
68
70
Доступна проверка нескольких условий с комбинацией их результатов через оператор `AND` или `OR`.
69
71
@@ -86,21 +88,43 @@ menuTitle: Процессы
86
88
87
89
##### Цикл
88
90
89
-
Элемент «Цикл» предназначен для выполнения одной и той же части процесса заданное число раз, после выполнения активируется элемент, подключенный к выходу из цикла.
91
+
Элемент «Цикл» повторяет ветку процесса либо фиксированное число раз, либо по каждому элементу JSON-массива из хранилища. После завершения всех итераций активируется элемент, подключённый к выходу из цикла.
90
92
91
-
В конфигурации цикла можно настроить количество итераций: от 1 до 10000.
93
+
###### Режим цикла
94
+
95
+
-**Фиксированное число** — поле «Количество итераций» от 1 до 10000. На каждой итерации в `{{ .store._loop.item }}` доступен номер итерации (1, 2, 3…).
96
+
-**По коллекции** — поле «Шаблон коллекции»: Go-шаблон, который при входе в цикл должен дать JSON-массив. Обычно указывают путь к массиву, записанному предыдущей задачей: `{{ .store.notification.engagements }}`. Каждый элемент массива — одна итерация; текущий элемент доступен как `{{ .store._loop.item }}`.
97
+
98
+
Если массив пуст или ключ отсутствует, тело цикла не выполняется, процесс сразу переходит по связи «Выход из цикла».
99
+
100
+
Подробнее — в разделе [«Хранилище процесса»](store/#цикл-по-коллекции-из-хранилища).
92
101
93
102
###### Исходящие связи
94
103
95
104
Из элемента «Цикл» должны выходить ровно две связи к разным элементам:
96
-
- «Тело цикла» — нижний порт; от него строится ветка, которая выполняется на каждой итерации.
97
-
- «Выход из цикла» — правый порт; по этой ветке выполнение продолжается после последней итерации.
105
+
106
+
1. «Тело цикла» — нижний порт; от него строится ветка, которая выполняется на каждой итерации.
107
+
1. «Выход из цикла» — правый порт; по этой ветке выполнение продолжается после последней итерации.
98
108
99
109
###### Использование
100
110
101
-
Элемент «Цикл» можно ставить после «Эксклюзивного шлюза» или «Параллельного шлюза», если нужно повторять выбранную ветку, либо использовать для схем, где один блок шагов должен пройти фиксированное число раз.
111
+
Типовые сценарии:
112
+
113
+
- повторная проверка статуса внешней системы с фиксированным числом попыток;
114
+
- обход списка объектов из ответа API: задача записывает массив в хранилище, цикл в режиме «По коллекции» обрабатывает каждый элемент;
Типовой пример использования: ожидание в теле цикла успешного выполнения какой-либо длительной операции и выход через эксклюзивный шлюз при положительном результате проверки, либо возврат в цикл при отрицательном результате.
119
+
Элемент «Шаблон» вычисляет Go-шаблон без дополнительного вызова действия и записывает результат в хранилище как строку.
120
+
121
+
Настройте:
122
+
123
+
- «Тело шаблона» — текст с плейсхолдерами `{{ .store.* }}`, `{{ .process.* }}`, внутри цикла — `{{ .store._loop.* }}`;
124
+
- «Ключ в хранилище» — dot-path назначения, например `rendered_message`;
125
+
- «Подсказка формата» — как отображать значение при просмотре запуска (`text`, `markdown`, `html`, `json`); не влияет на содержимое хранилища.
126
+
127
+
Примеры и ограничения — в разделе [«Хранилище процесса»](store/#элемент-шаблон).
104
128
105
129
##### Таймер
106
130
@@ -154,30 +178,22 @@ menuTitle: Процессы
154
178
155
179
На вкладке `Параметры` настраиваются параметры процесса, которые могут использоваться во всех действиях процесса.
156
180
157
-
Конфигурация и использование параметров процесса описаны в разделе [«Шаблонизация»](../user/templating/#параметры-процесса).
181
+
Конфигурация и использование параметров процесса описаны в разделе [«Шаблонизация»](../../user/templating/#параметры-процесса).
158
182
159
183
### Хранилище процесса
160
184
161
-
Хранилище процесса — это хранилище в формате «ключ — значение» для передачи данных между действиями в процессе.
162
-
163
-
#### Основные характеристики
164
-
165
-
- «Одно хранилище на запуск процесса» — каждый запуск процесса имеет своё хранилище.
166
-
- «Плоские ключи» — в хранилище используются только логические ключи (например `projectId`, `deployJobId`).
167
-
- «Запись только по правилам» — в хранилище записывается только то, что задано в настройках действий, входящих в процесс (см. [«Обновление хранилища процесса»](../actions/overview/#обновление-хранилища-процесса)). Если правил записи нет — в хранилище ничего не записывается.
168
-
- «Чтение через плейсхолдеры» — в конфигурации действий (URL, заголовки, body и т. д.) можно использовать Go-шаблоны вида `{{ .store.<ключ> }}` (см. [«Хранилище процесса»](../../user/templating/#хранилище-процесса)).
169
-
170
-
#### Как данные попадают в хранилище
185
+
Хранилище процесса — JSON-объект для передачи данных между шагами одного запуска: идентификаторы, массивы, промежуточные результаты и тексты из элемента «Шаблон».
171
186
172
-
1. Действие в процессе завершилось успешно.
173
-
1. У действия настроены правила «Запись в хранилище процесса».
174
-
1. Для каждого правила выполняется Go-шаблон из поля «Источник» с данными ответа действия; полученная строка записывается в хранилище под ключом, указанным в поле «Ключ в хранилище».
187
+
Полное описание правил записи, операций, контекста цикла и примеров сценариев — в разделе [«Хранилище процесса»](store/).
175
188
176
-
Если для одного и того же ключа пишут несколько действий (или одно и то же действие при повторном запуске), значение перезаписывается.
189
+
Кратко:
177
190
178
-
#### Поведение при отсутствующих данных
191
+
-**Одно хранилище на запуск** — у каждого экземпляра процесса своё хранилище; его можно просмотреть на вкладке «Хранилище» при визуализации запуска.
-**Запись по правилам** — данные попадают в store после успешного выполнения действия (раздел [«Обновление хранилища процесса»](../../actions/overview/#обновление-хранилища-процесса)) или при проходе элемента «Шаблон». Доступны операции записи строки и JSON, добавления, слияния и удаления, а также условие на каждое правило.
194
+
-**Чтение** — Go-шаблоны `{{ .store.<путь> }}` в конфигурации действий и условиях шлюзов (см. [«Хранилище процесса»](../../user/templating/#хранилище-процесса)).
179
195
180
-
Если ключа нет в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), при выполнении шаблона `{{ .store.<ключ> }}`действие завершится с ошибкой.
196
+
Если ключа нет в хранилище, шаблон `{{ .store.<путь> }}`завершит шаг с ошибкой.
181
197
182
198
## Запуск процесса
183
199
@@ -228,14 +244,15 @@ menuTitle: Процессы
228
244
* Логи выполнения действий.
229
245
* Статус каждого элемента процесса.
230
246
* Хронологию выполнения процесса.
247
+
* Содержимое [хранилища процесса](store/#просмотр-хранилища-при-выполнении) на вкладке «Хранилище».
231
248
232
249
#### Таймлайн
233
250
234
251
На панели визуализации запуска процесса доступна вкладка «Таймлайн», на которой отображается хронология выполнения процесса: для каждого элемента, который участвовал в текущем запуске, показаны время начала и окончания, длительность и статус.
235
252
236
253
#### Лог процесса
237
254
238
-
Для каждого запуска процесса доступен подробный лог его выполнения. Кнопка просмотра лога находится на экране визуализации выполнения процесса (иконка лога рядом с Fullscreen, Zoom, Refresh).
255
+
Для каждого запуска процесса доступен подробный лог выполнения: панель на схеме запуска, отдельное окно или док внизу экрана. Лог и JSON хранилища можно скачать с панели диалога запуска процесса.
0 commit comments