Циклы можно реализовать в рамках рабочего процесса для повторения набора задач на основе заданных условий.
Конфигурация цикла доступна либо на вкладке конфигурации блока, либо при нажатии правой кнопкой мыши на блок и выборе .
Настройки цикла требуют список элементов для работы:
-
Простые, одиночные значения, которые затем можно использовать в параметрах задачи, таких как
{{ @item }}. -
Объект .JSON, где к каждому элементу в объекте можно обратиться по его ключу, например
{{ @item.key }}.
Доступ к совокупным результатам цикла
Результат всех итераций можно получить в виде массива .JSON после завершения цикла. Результат каждой итерации должен быть допустимым файлом .JSON.
Существует четыре типа циклов, которые можно определить и выбрать в поле :
-
withSequence
-
withItems
-
withComplexItems
-
withParam
Цикл withSequence позволяет выполнять итерацию по последовательности чисел или генерировать диапазон значений в рамках рабочего процесса.
Его можно использовать для повторения набора шагов определенное количество раз или выполнения операций на основе диапазона значений.
Чтобы создать пример цикла withSequence, выполните следующие действия:
-
Выберите пустой блок и откройте настройки .
-
Нажмите редактировать цикл.
Отображаются параметры конфигурации .
-
В поле выберите withSequence.
-
Введите количество итераций цикла в поле .
-
При необходимости введите значение, с которого цикл должен начинаться и/или которым должен заканчиваться.
-
Нажмите «Сохранить цикл».
-
В конфигурации нажмите «Редактировать параметры».
Отображаются параметры конфигурации.
-
В поле введите
{{ @item }}и нажмите «Сохранить параметры».Это значение будет преобразовано во время выполнения.
Например, если для параметра count установлено значение 3, а начальное значение равно 2, результаты этого цикла будут следующими:
-
список цикла => [\"2\", \"3\", \"4\"] -
{{ @item }} => 2или3, или4в зависимости от итерации
Цикл withItems позволяет выполнять итерацию по списку элементов.
Его можно использовать, когда необходимо выполнить операции на основе списка элементов.
Чтобы создать пример цикла withItems, выполните следующие действия:
-
Выберите пустой блок и откройте настройки .
-
Нажмите редактировать цикл.
Отображаются параметры конфигурации .
-
В поле выберите withItems
-
Введите
enв поле и нажмите +Item (будет создано еще одно поле ). -
Введите
deво второе поле и создайте третье поле. -
Введите
frв третье поле и создайте четвертое поле. -
Введите
usв четвертое поле . -
Нажмите «Сохранить цикл».
-
В конфигурации нажмите «Редактировать параметры».
Отображаются параметры конфигурации.
-
В поле введите
{{ @item }}и нажмите «Сохранить параметры».Это значение будет преобразовано во время выполнения.
Результатом этого цикла будет итерация по списку кодов языка:
-
цикл список => ["en", "de", "fr", "ua"] -
{{ @item }} => enилиde .. ua
Цикл withComplexItems позволяет выполнять итерацию по списку объектов.
Его можно использовать, когда необходимо выполнить операции на основе списка сложных элементов.
Чтобы Создать пример цикла withComplexItems, выполните следующие действия:
-
Выберите пустой блок и откройте настройки .
-
Нажмите редактировать цикл.
Отображаются параметры конфигурации .
-
В поле Выбрать withComplexItems
-
Нажмите +Ключ:значение, чтобы добавить второй ключ.
-
Для введите следующее:
-
-
: name
-
: проект 1
-
-
-
: Идентификатор
-
: 11
-
-
-
Нажмите +Объект, чтобы добавить второй объект, и +Ключ:значение для второго ключа.
-
Для введите следующее:
-
-
: name
-
: проект 2
-
-
-
: Идентификатор
-
: 22
-
Пример настроек:
-
-
В конфигурации нажмите «Редактировать параметры».
Отображаются параметры конфигурации.
-
В поле введите
{{ @item.name }}и нажмите «Сохранить параметры». Это значение будет преобразовано во время выполнения.
Результатом этого цикла будет итерация по списку проектов:
-
список цикла=>[ { \"name\": \"Project 1\", \"id\": 11 }, { \"name\": \"Project 2\", \"id\": 22 } ] -
{{ @item }}=>{ \"name\": \"Project 1\", \"id\": 11 } -
{{ @item.name }}=>Project 1 -
{{ @item.id }}=>11
Цикл withParam позволяет выполнять итерацию по динамическому списку, который является результатом любой предыдущей задачи или триггера.
Этот цикл используется только в качестве справочного файла в поле параметра.
Например:
Результаты задачи (Strings: Опубликовать выпуск):
{
"created_at": "2015-01-28T09:52:53Z",
\"environments\": [\"development\", \"production\"],
"id": "abcd1234cdef1234abcd1234cdef1234",
\"locales\": [
{
\"code\": \"en-GB\",
"id": "abcd1234cdef1234abcd1234cdef1234",
\"name\": \"English\"
},
{
"id": "abcd5678cdef5678abcd5678cdef5678",
\"name\": \"German\",
\"code\": \"de_DE\"
}
],
"platforms": ["android"],
"project": {
"created_at": "2015-01-28T09:52:53Z",
"id": "abcd1234cdef1234abcd1234cdef1234",
"main_format": "xml",
"name": "My Android Project",
"updated_at": "2015-01-28T09:52:53Z"
},
"updated_at": "2015-01-28T09:52:53Z",
"version": 1
}
Если настройки цикла установлены как {{ $.locales }}, то:
-
список цикла=>[ { \"code\": \"en-GB\", "id": "abcd1234cdef1234abcd1234cdef1234", \"name\": \"English\" }, { "id": "abcd5678cdef5678abcd5678cdef5678", \"name\": \"German\", \"code\": \"de_DE\" } ] -
Первый
{{ @item }}=>{ \"code\": \"en-GB\", "id": "abcd1234cdef1234abcd1234cdef1234", \"name\": \"English\" } -
{{ @item.code }}=>en-GB -
{{ @item.name }}=>английский
Или если {{ $.environments }} используется, то:
-
список цикла=>["development", "production"] -
{{ @item }}=>разработкаилипроизводство