===== Цикл ===== Цикл работает здесь точно так же, как Цикл 'For' во всех основных языках программирования. \\ У этой Задачи может быть два выхода: * Выход “Loop Path” используется только в том случае, если в настройках вы включили опцию “Loop path output”. * Так же не забывайте, что у выхода “Output” тоже должно быть действие (Задача). Поскольку в теории Цикл может работать бесконечно, проверьте все настройки прежде, чем запускать Бизнес-Процесс. Если вы запустите бесконечный Цикл, то вам придется перезапустить веб-сервер или дождаться верхнего порога в 2500 итераций и тогда Бизнес-Процесс остановится сам. \\ Таким образом, вы не сможете создать в Цикле более 2500 итераций. ==== Настройка ==== ---- В этой Задаче используются только PHP-выражения. \\ **Оператор 'return' у вас ДОЛЖЕН быть каждом поле.** Общая структура такова: - Инициализировать переменную - Совершить проверку, если выполнение Задачи дает результат true. Если false, то прекратить Цикл и вывести результат - Выполнить Цикл - Инициализировать переменную Цикла - Вернуться к шагу 2 **Пример:** Нижеприведенный Цикл будет выполнен 20 раз. \\ {{map> :ru:start:tasks:flow:loop2.png?nolink |Bild1508332984312}} * [[|Инициализация переменной@ 126,47,281,64]] * [[|Условие для остановки цикла. Убедитесь, что используется оператор 'return' и задано допустимое условие@ 422,47,578,65]] * [[|Выражение, выполняемое после каждой итерации для увеличения значения переменной $loop. Убедитесь, что вы используете оператор 'return' и правильно увеличиваете значение переменной@ 127,71,576,163]] * [[|Используйте настройку 'Loop Path' для создания итерации 'process'@ 4,192,136,224]] * [[|Настройка выражения для выполнения во время каждой итерации. Не смешивайте 'Increment Script' с этим выражение, иначе потеряете текущую структуру@ 6,226,594,357]] * [[|Выполнять Бизнес-Процесс каждый раз@ 1,358,181,388]] {{ **//Примечание//** Настройки в блоке "Loop options" относятся к завершающей части работы Цикла, вы можете выбрать 1 из предложенных 3 вариантов завершения: - Loop path output - Выполнять выражение каждый раз (Execute Expression each time) - Выполнять Бизнес-Процесс каждый раз (Execute Workflow each time) Поле **(1)** отвечает за инициализацию переменной. Здесь она инициализирована единицей - 1. \\ Поле **(2)** задает условие для окончания цикла - как только значение переменной $loop станет меньше или равно 20, Цикл считается оконченным. \\ Поле **(3)** мы пока опустим. Теперь, Цикл выполнен. Вы можете настроить выполнение Задачи включив опцию “Loop Path” Output **(4)**. \\ Другая опция - выполнять выражение при каждой итерации **(5)**, само же выражение вписывается в поле **(6)**. Вы можете использовать все функции, которые создали, и все поля для выбранной Записи. \\ Последняя опция **(7)** включает выполнение Бизнес-Процесса во время каждой итерации. В данном примере эта опция выключена. \\ Если вы ее включите, то из выпадающего списка вам нужно будет выбрать Бизнес-Процесс, который необходимо выполнять, затем, когда итерация будет выполнена, условие **(3)**, которое мы пропустили ранее, будет выполнено и вернет новое значение переменной $loop, поэтому, если вы настраивали Задачу так, как написано в данном примере, то не включайте последнюю опцию **(7)**. Использовать Задачу можно, например, так: {{:ru:start:tasks:flow:loop.png?nolink |}} - Выход loop path будет выполняться 1 раз в каждой итерации. В конце выполнения связи с Циклом не будет - Этот выход будет выполняться в конце Цикла