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

Split

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

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

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

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

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

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

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

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

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

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

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

  • groovy

  • js

  • java

  • constant

  • simple

  • xpath

groovyСписок
ExpressionexpressionДаВыражение, которое определяет, как разделять входящее сообщение на части. Выражение
DelimiterdelimiterСимвол-разделитель текстовых данных. Параметр предназначен для использования со встроенной стратегией токенизации. По сути, это укороченная альтернатива выражению tokenize(',').,Строка
Aggregation StrategyaggregationStrategyСсылка на класс, реализующий алгоритм агрегации, которая определяет как объединять все ответы, полученные после обработки каждой части, в одно результирующее сообщение.Строка
Aggregation Strategy Method NameaggregationStrategyMethodNameЗадает имя алгоритма агрегации. Эта опция полезна, если ваш класс-агрегатор имеет несколько методов, и вы хотите выбрать конкретный метод, не реализуя стандартный интерфейс.Строка
Aggregation Strategy Method Allow NullaggregationStrategyMethodAllowNullУказывает, можно ли вызывать метод агрегации, если на первом вызове не было старого агрегированного сообщения, т.е. оно было пустым – NULL. Если значение параметра равно False, то метод агрегации не вызывается для первой части сообщения, а его результат просто используется как основа для последующей агрегации.FalseЛогическое значение
Parallel ProcessingparallelProcessing

Если значение параметра установлено в True, то части сообщения будут обрабатываться одновременно в многопоточном режиме.

Если значение параметра установлено в False, то части сообщения будут обрабатываться последовательно.

FalseЛогическое значение
SynchronoussynchronousРазделение и последующая маршрутизация обрабатываются синхронно в исходном потоке, даже если включена опция параллельной обработки Parallel Processing. Это может быть полезно для тестирования или простых сценариев, где переключение между потоками нежелательно. Использование этого параметра может критически снизить производительность параллельной обработки.FalseЛогическое значение
StreamingstreamingЕсли значение параметра установлено в True, то данные будут разделяться и обрабатываться последовательно, для каждой части. Это позволяет эффективно работать с очень большими объемами данных, не загружая их все в память сразу.FalseЛогическое значение
Stop On ExceptionstopOnExceptionЕсли значение параметра установлено в True, то при возникновении любого исключения немедленно прекратится обработка оставшихся частей. При параллельной обработке те задачи, которые еще не начали выполняться, будут отменены.FalseЛогическое значение
TimeouttimeoutТаймаут в миллисекундах для общей обработки всех частей. Если обработка не уложится в это время, будет вызвана стратегия, указанная в AggregationStrategy для текущих результатов, а оставшиеся части будут отменены.0Строка
Executor ServiceexecutorServiceСсылка на пользовательский потоковый пул, который будет использоваться для параллельной обработки. Если значение параметра не указано при включенной параллельной обработке, то используется стандартный пул.Строка
On PrepareonPrepareСсылка на класс, реализующий процесс обработки. Этот процесс будет вызван для каждой части сообщения перед тем, как она будет обработана. Параметр может использоваться для глубокого копирования сообщения, если его части разделяют изменяемое состояние.Строка
Share Unit Of WorkshareUnitOfWorkЕсли значение параметра установлено в True, то все части сообщения будут использовать ту же единицу работы, что и оригинальное сообщение. Это означает, что если обработка одной части завершится неудачей и будет произведен откат состояния, это затронет всю единицу работы, например, откатит транзакцию для всего исходного сообщения. Используйте параметр с осторожностью, в основном для транзакционных сценариев.FalseЛогическое значение
DescriptiondescriptionКраткое описание блокаСтрока

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

Название в UIНазваниеОбязательныйОписаниеЗначение по умолчаниюТип данных
DisableddisabledНетОпределяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться.FalseЛогическое значение