Choice
Общее описание
Логический блок Choice обрабатывает входное сообщение по условию, заданному пользователем при размещении блока в редакторе потока. Алгоритм работы блока Choice соответствует логическим блокам If-Else и Switch классического программирования.
При выполнении условия, заданного для ветки (веток) маршрута When, сообщение направляется на дальнейшую обработку по соответствующей ветке. Для обработки случаев, когда ни одно из условий When не выполняется, предусмотрена ветка Otherwise.
Пустая ветка When добавляется автоматически при добавлении логического блока Choice. Вы можете добавить еще несколько веток When, нажав на кнопку «+» справа от блока Choice.
Пустая ветка Otherwise добавляется автоматически при добавлении логического блока Choice. Ветка Otherwise может быть только одна.
Удаление блока Choice и его веток производится по следующим правилам:
-
При удалении блока Choice удаляются все ветки и блоки, расположенные внутри его области действия;
-
При удалении блока When или Otherwise из блока Choice, удаляются все блоки, размещенные в этой ветке;
-
При удалении последней ветки When в блок Choice добавляется новая пустая ветка When;
-
При удалении ветки Otherwise в блок Choice добавляется новая пустая ветка Otherwise.
Настройка блока Choice
В данном разделе описаны параметры блока Choice и блоков When и Otherwise, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.
Параметры блока Choice
| Название в UI | Название | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|---|
| Disabled | disabled | Нет | Определяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |
| Precondition | precondition | Нет | Указывает, задана ли для блока Choice предобработка. В режиме предобработки логический блок Choice является оптимизированным контекстно-зависимым роутером. Блок выбирает при запуске одну из веток (When/Otherwise) и всегда выполняет маршрутизацию по этой ветке. Это позволяет избежать проверки для каждого сообщения, поскольку они всегда будут направляться по одной и той же ветке. Поскольку в режиме предобработки блок Choice проверяет условия во время запуска, эти условия не могут основываться на содержимом сообщения. Они могут основываться на свойствах конфигурации, переменных окружения, системных свойствах JVM. | False | Логическое значение |
Параметры блока When
| Название в UI | Название | Описание | Значение по умолчанию | Тип данных | |
|---|---|---|---|---|---|
| Language | language | Да | Выбор языка, на котором написано условие. Возможные значения:
| groovy | Список |
| Expression | expression | Да | Условие | Выражение | |
| Result Type | resultType | Нет | Формат результата вычисления условия. | Строка | |
| Disabled | disabled | Нет | Определяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |
| Trim | trim | Нет | Задает нужно ли отсекать перенос строки и пробелы в начале и конце значения. | True | Логическое значение |
Параметры блока Otherwise
| Название | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Disabled | Определяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |