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