Узел Цикл

Используйте узел цикла, чтобы выполнить один или несколько узлов в цикле. Вложенные циклы не поддерживаются.

Существуют циклы двух типов:
Do while
Этот цикл оценивает условие до выполнения. Если условие выполняется (true), цикл выполняется; в противном случае он переходит к следующему узлу. Этот тип цикла используется, если условие зависит от процессов рабочего потока, происходящих до узла цикла. Если условие уже выполнено, процесс, заданный циклом, не выполняется.
Do until
Этот цикл оценивает условие после каждого выполнения узлов цикла. Рабочий поток выполняет процесс, заданный в цикле, до проверки условия цикла. Если условие выполняется (true), цикл снова выполняется; в противном случае он переходит к следующему узлу после цикла. Этот тип цикла используется, если процесс, заданный циклом, должен выполниться хотя бы один раз независимо от всех предыдущих действий.

Также можно задать следующую опцию:

Асинхронная обработка основной части цикла
Если задана эта опция, выполнение цикла разблокируется. Каждая итерация цикла запустится, не дожидаясь завершения предыдущей итерации. Если эта опция не задана, каждая итерация цикла должна завершиться, прежде чем сможет начаться следующая итерация цикла.

Узлы, содержащиеся в цикле, не должны изменяться ни для каких действий вне цикла. Все переходы должны вести к узлу цикла и исходить из узла цикла. Стандартные правила разбиения и объединения применяются к циклам при наличии нескольких переходов, ведущих к циклу, и нескольких переходов, исходящих от цикла. Узел цикла не задает результаты узлов в цикле. Вы должны проверить состояние узлов в цикле в сценарии, который следует за циклом (если это требуется).

Действие в цикле может выполняться несколько раз (по одному разу на каждую итерацию цикла). Механизм рабочего потока отслеживает действия в цикле, присваивая им индекс, который указывает, к какой итерации цикла относится данный экземпляр действия. Этот индекс сохраняется в объекте действия как переменная-член index. Для действий, которых нет в цикле, этому индексу присваивается значение 0. Для действий в цикле это значение равно 1-n, где n - это число фактически выполняемых итераций цикла.

Чтобы получить экземпляр действия в цикле, используйте метод process.getActivity(). Этот метод принимает два аргумента: ID действия и индекс экземпляра целевого действия. Если вы используете этот метод для получения действия, которое не является частью цикла, вы можете либо опустить аргумент индекса, либо задать для него значение 0. Этот метод возвращает объект Действие.

Условие, заданное в цикле, задает число итераций цикла. Существует глобальная переменная, loopcount, с помощью которой можно узнать текущее число повторений цикла. Переменная loopcount принимает значения, начиная с 1 (loopcount=1), и увеличивается на единицу при каждом выполнении цикла. Эта переменная может быть полезна при создании условий цикла, например, loopcount<x.

Узлы, помещенные в цикл, определяют время, которое займет каждый цикл. У узла цикла нет встроенного механизма ожидания.

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