Orchestrator

Looping

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Циклы могут быть реализованы в рамках рабочего процесса для повторения набора задач на основе заданных условий.

Циклы выполняются последовательно. Максимум 4 шага могут выполняться параллельно.

Доступ к настройкам цикла можно получить либо на вкладке Advanced конфигурации блока, либо, щёлкнув правой кнопкой мыши на блоке, выбрав Edit loop.

Настройки цикла требуют список объектов для работы с ними:

  • Простые, одиночные значения, которые затем могут использоваться в параметрах задач, таких как {{ @item }}.

  • Объект .JSON, где каждый элемент в объекте может быть адресован по его ключу, например, {{ @item.key }}.

Доступ к агрегированным результатам цикла

К результатам всех итераций можно получить доступ в виде массива .JSON после завершения цикла. Результат каждой итерации должен быть валидным файлом .JSON.

Существует четыре типа циклов, которые могут быть определены и выбираются в поле loop_with:

  • withSequence

  • withItems

  • withComplexItems

  • withParam

withSequence

Цикл withSequence позволяет выполнить итерацию по последовательности чисел или сгенерировать диапазон значений в рамках рабочего процесса.

Его можно использовать для повторения набора шагов заданное количество раз или для выполнения операций на основе диапазона значений.

Чтобы создать пример цикла withSequence, выполните следующие шаги:

  1. Выберите пустой блок и откройте конфигурацию Loop.

  2. Нажмите Edit loop.

    Конфигурационные параметры loop_with представлены.

  3. В поле loop_with выберите withSequence.

  4. Введите количество итераций цикла в поле Count.

  5. При желании введите значение, с которого должен начинаться и/или заканчиваться цикл.

  6. Нажмите Save loop.

  7. В конфигурации Parameters нажмите Edit parameters.

    Представлены параметры конфигурации.

  8. В поле Message введите {{ @item }} и нажмите Save parameters.

    Это значение будет преобразовано во время выполнения.

Например, если счетчик установлен на 3, а начальное значение равно 2, результаты этого цикла будут:

  • loop list => ["2", "3", "4"]

  • {{ @item }} => 2 или 3 или 4, в зависимости от итерации

withItems

Цикл withItems позволяет выполнять итерацию по списку элементов.

Он может быть использован, когда необходимо выполнять операции на основе списка элементов.

Чтобы создать пример цикла withItems, выполните следующие шаги:

  1. Выберите пустой блок и откройте конфигурацию Цикл.

  2. Нажмите Редактировать цикл.

    Конфигурационные параметры loop_with представлены.

  3. В поле loop_with выберите withItems

  4. Введите en в поле variable и нажмите +Item (создается еще одно поле variable).

  5. Введите de во втором поле variable и создайте третье поле.

  6. Введите fr в третьем поле variable и создайте четвертое поле.

  7. Введите us в четвертом поле variable.

  8. Нажмите Save loop.

  9. В конфигурации Parameters нажмите Edit parameters.

    Представлены параметры конфигурации.

  10. В поле Message введите {{ @item }} и нажмите Save parameters.

    Это значение будет преобразовано во время выполнения.

Результаты этого цикла будут итерацией по списку языковых кодов:

  • loop list => ["en", "de", "fr", "ua"]

  • {{ @item }} => en или de .. ua

withComplexItems

Цикл withComplexItems позволяет выполнять итерацию по списку объектов.

Его можно использовать, когда нужно выполнять операции на основе списка сложных элементов.

Чтобы создать пример цикла withComplexItems, выполните следующие шаги:

  1. Выберите пустой блок и откройте конфигурацию Цикл.

  2. Нажмите Edit loop.

    Конфигурационные параметры loop_with представлены.

  3. В поле loop_with выберите withComplexItems

  4. Нажмите +Key:value, чтобы добавить второй ключ.

  5. Для Object 1 введите следующее:

    • Ключ: Значение1

      • ключ (необязательно): имя

      • (необязательно): Проект 1

    • Ключ: Значение2

      • key (необязательно): Идентификатор

      • (необязательно): 11

  6. Нажмите +Object, чтобы добавить второй объект, а +Key:value — для второго ключа.

  7. Для Object 2 введите следующее:

    • Ключ: Значение1

      • ключ (необязательно): имя

      • (необязательно): Проект 2

    • Ключ: Значение2

      • ключ (необязательно): Идентификатор

      • (необязательно): 22

    Пример настроек:

    Loop with Complex Items Example
  8. В конфигурации Parameters нажмите Edit parameters.

    Представлены параметры конфигурации.

  9. В поле Message введите {{ @item.name }} и нажмите Save parameters. Это значение будет преобразовано во время выполнения.

Результаты этого цикла будут итерацией по списку проектов:

  • loop list =>

    [
      {
        "name": "Проект 1",
        "id": 11
      },
      {
        "name": "Проект 2",
        "id": 22
      }
    ]
  • {{ @item }} =>

    {
      "name": "Проект 1",
      "id": 11
    }
  • {{ @item.name }} => Project 1

  • {{ @item.id }} => 11

withParam

Цикл withParam позволяет выполнить итерацию по динамическому списку, который является результатом любой предыдущей задачи или триггера.

Этот цикл используется только в качестве справочного файла в поле параметров.

Например:

Результаты задачи (Strings: Опубликовать релиз):

{
  "created_at": "2015-01-28T09:52:53Z",
  "environments": ["development", "production"],
  "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",
  "версия": 1
}

Если настройки цикла withParam установлены с {{ $.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 }} => English

Или если {{ $.environments }} является справочным файлом, тогда:

  • loop list => ["разработка", "производство"]

  • {{ @item }} => development или production

Была ли эта статья полезной?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.