Перейти к основному содержимому
Начало работы
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя

Loop

Общее описание

Блок Loop обеспечивает циклическую обработку сообщений. Алгоритм работы блока является аналогом циклов For и Do-While классических языков программирования.

При добавлении блока на рабочую область рядом с ним отображается область его действия, обрамляющая все блоки, добавляемые в эту область. Область можно сворачивать и разворачивать на экране стрелкой в правом верхнем углу рабочей области. Блоки, добавленные в рабочую область, выполняются в рамках одного цикла.

При удалении блока Loop удаляются все блоки, расположенные внутри его области действия.

Настройка блока

В данном разделе описаны параметры блока Loop, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.

Базовые параметры блока Loop

Название в UIНазвание арибутаОбязательныйОписаниеЗначение по умолчаниюТип данных
LanguagelanguageДа

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

Возможные значения:

  • groovy

  • js

  • java

  • constant

  • simple

  • xpath

groovyСписок
ExpressionexpressionДаВыражение для определения количества выполнения цикла. Вычисляется один раз и возвращает число, указывающее, сколько раз цикл будет выполнен. Ноль или отрицательное значение означают отсутствие цикла.Выражение

Возможные типы:

  • Целое число)

  • Выражение

Result TyperesultTypeНетФормат результата вычисления условия.Строка
TrimtrimНетЗадает нужно ли отсекать перенос строки и пробелы в начале и конце значения.TrueЛогическое значение

Расширенные параметры блока Loop

НазваниеНазваниеОбязательныйОписаниеЗначение по умолчаниюТип данных
DisableddisabledНетОпределяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться.FalseЛогическое значение
CopycopyНетОпределяет, что для каждой итерации цикла используется копия входного сообщения, то есть каждая итерация цикла будет начинаться с копии одного и того же сообщения.FalseЛогическое значение
Do WhiledoWhileНетВключает режим работы цикла while, который выполняется до тех пор, пока предикат не станет ложным или нулевым.FalseЛогическое значение
Break On ShutdownbreakOnShutdownНет

Определяет, должен ли цикл прерываться, если поток останавливается во время выполнения. При установке значения True цикл остановится сразу, а при значении False – продолжит работу до завершения своей текущей итерации, несмотря на остановку потока, что гарантирует завершение обработки данных.

Сценарии остановки процесса в зависимости от значения breakOnShutdown:

  1. breakOnShutdown = True

Поток останавливается, текущая итерация цикла немедленно прерывается, сам цикл завершается. Все незавершенные операции внутри цикла будут отменены.

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

  1. breakOnShutdown = False

Цикл продолжит выполнение текущей итерации, даже если поток был остановлен. Таким образом, все сообщения, уже находящиеся в цикле, будут обработаны до конца, прежде чем цикл завершится.

Используйте, когда необходимо, чтобы все сообщения, которые уже попали в цикл, были обработаны до конца. Например, если вы обрабатываете критически важные данные и каждая итерация должна быть завершена, несмотря на остановку приложения.

FalseЛогическое значение