[Документация Yandex Cloud](../../../../index.md) > [Yandex Serverless Integrations](../../../index.md) > [Пошаговые инструкции](../../index.md) > Workflows > [Конструктор шагов рабочего процесса](index.md) > Управляющие шаги > While

# Добавить цикл While

Управляющий шаг While позволяет задать последовательность шагов, которые будут выполняться в цикле. Шаг выполняется, пока соблюдено заданное в поле **Шаблон условия выполнения** условие, но не более чем заданное в поле **Максимальное количество итераций** количество раз. Если условие не задано, шаг выполняется указанное количество раз. Если ограничение на количество итераций не задано, цикл будет выполняться, пока соблюдено условие или до достижения [таймаута](../../../concepts/limits.md) выполнения рабочего процесса.

Каждая ветка выполнения внутри шага While (с учетом всех шагов [Switch](switch.md)) должна содержать [интеграционный шаг](index.md#integration-steps) или шаг [Success](success.md), [Fail](fail.md) или [Wait](wait.md).

{% list tabs %}

- Консоль управления {#console}

  1. В процессе [создания](../workflow/create-constructor.md) нового рабочего процесса или [изменения](../workflow/update.md) существующего в консоли управления в блоке **Создание рабочего процесса** / **Изменение рабочего процесса** выберите `Конструктор`. 
  1. Из секции **Управляющие шаги** в левой части экрана перетащите элемент ![arrows-rotate-right](../../../../_assets/console-icons/arrows-rotate-right.svg) **While** в нужное место рабочего процесса в окне конструктора.

      Перетаскивать шаги можно в обозначенные пунктирной линией блоки на графической схеме рабочего процесса, такие как **Добавить шаг** и т.п.
  1. В окне со схемой рабочего процесса нажмите на добавленный блок **While**, чтобы выбрать его.
  1. В правой части окна на вкладке **Настройки**:

      1. В поле **Имя шага** задайте имя шага рабочего процесса.
      1. В поле **Шаблон условия выполнения** задайте условие в формате jq, которое возвращает строку `true` или `false`. Поле является обязательным к заполнению, если не задано значение поля **Максимальное количество итераций**.
      1. В поле **Максимальное количество итераций** задайте максимальное количество итераций, которое может совершить цикл. Поле является обязательным к заполнению, если не задано значение поля **Шаблон условия выполнения**.
  1. (Опционально) Перейдите на вкладку **Вход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации [состояния рабочего процесса](../../../concepts/workflows/workflow.md#state), которое передается в шаг.
  1. (Опционально) Перейдите на вкладку **Выход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации выходных данных шага, которые добавляются в [состояние рабочего процесса](../../../concepts/workflows/workflow.md#state).
  1. Чтобы добавить новый шаг в ветку выполнения, перетащите нужный шаг из секции **Интеграционные шаги** или **Управляющие шаги** в обозначенный пунктирной линией блок внутри ветки.

{% endlist %}

## Полезные ссылки {#see-also}

* [Спецификация YaWL](../../../concepts/workflows/yawl/management/while.md)
* [Создать рабочий процесс с помощью конструктора](../workflow/create-constructor.md)
* [Изменить рабочий процесс](../workflow/update.md)