JSLT
Общее описание
Блок JSLT нужен для трансформации JSON‑payload в рамках потока с использованием языка JSLT. Позволяет преобразовывать структуру JSON‑сообщений, фильтровать данные, добавлять или удалять поля, выполнять вычисления и условную логику на основе правил, заданных в JSLT‑скрипте.
Механизм работает следующим образом: блок получает JSON‑payload из предыдущего шага потока, применяет к нему JSLT‑скрипт (задаваемый через атрибут jsltProcessor), выполняет преобразования (выборка, фильтрация, вычисления) и передает преобразованный JSON следующему блоку потока.
Блок JSLT может использоваться в качестве:
- блока-обработчика.
Блок-обработчик предназначен для управления, проверки и преобразования данных, которые используются в контексте потока.
Настройка блока
В данном разделе описаны параметры блока JSLT, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Загрузить схему или темплейт | В данном поле вы можете выбрать или загрузить схему или шаблон, выбрав его из списка загруженных файлов или в файловом навигаторе. | Файл | ||
| Description | description | Краткое описание блока. | Строка | |
| Allow Context Map All | allowContextMapAll | Определяет, должна ли карта контекста предоставлять доступ ко всем деталям. По умолчанию доступны только текст сообщения и заголовки. | False | Логическое значение |
| Allow Template From Header | allowTemplateFromHeader | Определяет, разрешать ли использовать шаблон ресурса из заголовка или нет (по умолчанию false). Включение этого параметра позволяет указывать динамические шаблоны через заголовок сообщения. Однако это может рассматриваться как потенциальная уязвимость системы безопасности, если заголовок исходит от злоумышленника, поэтому используйте его с осторожностью. | False | Логическое значение |
| Content Cache | contentCache | Определяет, следует ли использовать кэш содержимого ресурса или нет. | False | Логическое значение |
| Map Big Decimal As Floats | mapBigDecimalAsFloats | Определяет способ сериализации чисел типа BigDecimal при преобразовании данных (например, из XML в JSON). Если установлено значение True, маппер активирует флаг USE_BIG_DECIMAL_FOR_FLOATS в настройках сериализации. Это гарантирует, что значения BigDecimal будут корректно обрабатываться как числа с плавающей точкой без потери точности. Параметр актуален преимущественно для producer‑части компонента (на этапе вывода/передачи данных). Возможные значения:
| False | Логическое значение |
| Object Mapper | objectMapper | Используемый класс object mapper библиотеки Jackson. | Строка | |
| Pretty Print | prettyPrint | Определяет, будет ли JSON в выходном сообщении отформатирован с отступами и переносами строк в человекочитаемом виде (pretty‑printed). Если установлено значение True, JSON‑вывод будет структурирован: с отступами, переносами строк и пробелами между элементами. Если False, JSON выдается в компактной однострочной форме (без лишних пробелов и переносов). Возможные значения:
| False | Логическое значение |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | lazyStartProducer | Определяет, должен ли отправитель стартовать в отложенном режиме (при получении первого сообщения). Отложенный запуск можно использовать в ситуациях, когда запуск отправителя может завершиться неудачей и привести к сбою при запуске потока. Если отложить запуск, то сбой при запуске можно будет обработать во время потокизации сообщений с помощью обработчиков ошибок потокизации. Обратите внимание, что при обработке первого сообщения создание и старт отправителя могут занять некоторое время и увеличить общее время обработки. | False | Логическое значение |
| Disabled | disabled | Определяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |