Кастомные теги

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

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

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

Tag Размещение Краткое описание

<connector-selector />

Out-Flow → Output connector selector

выбор коннектора на основе свойств и шаблонов

<in-flow-pre-route-start />

In-Flow → pre-route

обозначение начала предварительной конфигурации входного потока перед маршрутизацией

<out-flow-pre-route-start />

Out-Flow → pre-route

обозначение начала предварительной конфигурации выходного потока перед маршрутизацией

<set-destination />

In-Flow → pre-route
Connector-In → pre-route

указание имени целевой системы

<entaxy-trace />

во всех точках кастомизации

используется для отслеживания маршрута прохождения данных

<respond />

In-Flow → pre-route
Connector-In → pre-route

начать отправку ответа сейчас и продолжить обработку данных

<to-connection />

In-Flow → pre-route
Connector-In → pre-route

используется для указания пути, по которому данные будут переданы на конкретную коннекцию

<xslt />

во всех точках кастомизации

используется для xslt-преобразования пакета при помощи xslt-ресурса

<default-destination />

In-Flow → pre-route
Connector-In → pre-route
Default-route

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

<next-route />

In-Flow → pre-route
Connector-In → pre-route

обход дефолтного маршрута, с указанием заголовка следующей точки маршрута

<standard-router>

default-route

используется для маршрутизации данных на основе заданных правил или условий

<prefer-connector />

In-Flow → pre-route
Connector-In → pre-route

параметр выбора выходного коннектора

connector-selector

Описание: Тег определяет механизм выбора коннектора на основе заданных свойств и шаблонов.

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <choice>
      <when>
        <simple>${headers.in} == null</simple>
        <connector-selector>
          <properties-to-use>
            <property>connector.type</property>
            <property>connector.protocol</property>
            <property>connector.classifier</property>
          </properties-to-use>
          <patterns>
            <pattern>=:=:=</pattern>
            <pattern>=:=:*</pattern>
            <pattern>=:*:*</pattern>
            <pattern>*:=:=</pattern>
            <pattern>*:=:*</pattern>
          </patterns>
          <options>
            <fail-back-to-legacy-router />
            <use-the-only-connector />
            <use-default-connector />
            <allow-all-stars-pattern>false</allow-all-stars-pattern>
            <treat-no-property-as-any>false</treat-no-property-as-any>
          </options>
        </connector-selector>
      </when>
      <otherwise>
        <connector-selector>
          <properties-to-use>
            <property>connector.type</property>
            <property>connector.protocol</property>
            <property>connector.classifier</property>
          </properties-to-use>
          <patterns>
            <pattern>=:=:=</pattern>
            <pattern>=:=:*</pattern>
            <pattern>=:*:*</pattern>
            <pattern>*:=:=</pattern>
            <pattern>*:=:*</pattern>
            <pattern>*:*:*</pattern>
          </patterns>
          <options>
            <fail-back-to-legacy-router />
            <use-the-only-connector>false</use-the-only-connector>
            <use-default-connector>false</use-default-connector>
            <allow-all-stars-pattern>false</allow-all-stars-pattern>
            <treat-no-property-as-any>false</treat-no-property-as-any>
          </options>
        </connector-selector>
      </otherwise>
    </choice>
  </route>

Внутренние теги:

<properties-to-use> - содержит список свойств, которые будут использованы при выборе коннектора:

  • <property>connector.type</property> - тип коннектора

  • <property>connector.protocol</property> - протокол коннектора

  • <property>connector.classifier</property> - классификатор коннектора

<patterns> - содержит список шаблонов, которые будут сопоставлены с переданными параметрами для выбора соответствующего коннектора:

  • <pattern>=:=:=</pattern> - соответствует точным значениям всех трех свойств (connector.type, connector.protocol и connector.classifier).

  • <pattern>=:=:*</pattern> - соответствует точным значениям первых двух свойств (connector.type и connector.protocol), а значение connector.classifier может быть любым.

  • <pattern>=:*:*</pattern> - соответствует точному значению connector.type и любым значениям connector.protocol и connector.classifier.

  • <pattern>*:=:=</pattern> - соответствует любому значению connector.type и точным значениям connector.protocol и connector.classifier.

  • <pattern>*:=:*</pattern> - соответствует любому значению connector.type и connector.classifier и точному значению connector.protocol.

<options> - элемент содержит дополнительные настройки для выбора коннектора:

  • <fail-back-to-legacy-router /> - если не удалось выбрать коннектор с использованием <connector-selector> система вернется к использованию legacy маршрутизации.

  • <use-the-only-connector /> - если в системе существует только один коннектор, то он будет автоматически использован.

  • <use-default-connector /> - использовать коннектор по умолчанию.

  • <allow-all-stars-pattern>false</allow-all-stars-pattern> - запретить использование шаблона со звездочкой (*) для всех свойств.

  • <treat-no-property-as-any>false</treat-no-property-as-any> - если в коннекторе нет property, то рассматривать ли это как любое значение property или нет.

in-flow-pre-route-start и out-flow-pre-route-start

Описание: Тег служит для обозначения начала этапа предварительной конфигурации входного (IN)/выходного (OUT) потока перед началом маршрутизации. Это может быть полезно при настройке дополнительных параметров или операций необходимых перед маршрутизацией данных.

in-flow-pre-route-start:

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <in-flow-pre-route-start />
    <setProperty name="NTX_profile_in_preRouted">
      <constant>true</constant>
    </setProperty>
  </route>

out-flow-pre-route-start:

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <out-flow-pre-route-start />
    <setProperty name="NTX_profile_out_preRouted">
      <constant>true</constant>
    </setProperty>
  </route>

set-destination

Описание: Тег служит для указания имени целевой системы.

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <from uri="direct:pre-route" />
    <setProperty name="NTX_connector_preRouted">
      <constant>true</constant>
    </setProperty>
    <set-destination>system-b</set-destination>
  </route>

entaxy-trace

Описание: Тег используется для отслеживания маршрута прохождения данных.

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <in-flow-pre-route-start />
    <setProperty name="NTX_profile_in_preRouted">
      <constant>true</constant>
    </setProperty>
    <entaxy-trace>
      <simple>any text</simple>
    </entaxy-trace>
  </route>

respond

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

В точке кастомизации pre-route входного коннектора / в точке кастомизации pre-route входного потока профиля.
Вот как работает каждый вариант:

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <from uri="direct:pre-route" />
    <setProperty name="NTX_connector_preRouted">
      <constant>true</constant>
    </setProperty>
    <set-destination>system-1</set-destination>
    <respond now="true" continue="false" />
  </route>
  • <respond now="true" continue="true" />: Процесс интеграции немедленно начинает отправку ответа отправителю (now="true"), и после этого продолжает обработку данных (continue="true").

  • <respond now="true" continue="false" />: Процесс интеграции немедленно начинает отправку ответа отправителю (now="true"), и после этого не продолжает обработку данных (continue="false").

  • <respond now="false" continue="true" />: Отправка ответа происходит при достижении дефолтного маршрута (now="false"), и после этого продолжается обработка данных (continue="true").

  • <respond now="false" continue="false" />: Отправка ответа происходит по умолчанию при достижении дефолтного маршрута (now="false"), и после этого не продолжается обработка данных (continue="false").

to-connection

Описание: Используется для указания пути, по которому данные будут переданы на конкретную коннекцию.

xslt

Описание: Тег используется для xslt-преобразования пакета при помощи xslt-ресурса

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <pre-output-start />
    <setProperty name="NTX_connector_preOutput">
      <constant>true</constant>
    </setProperty>
    <xslt resource="schemas:example.xsl" />
    <setHeader name="CamelFileName">
      <constant>c.xml</constant>
    </setHeader>
  </route>

default-destination

Описание: Установка значений заголовков для маршрутизации или обработки данных по умолчанию

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <in-flow-pre-route-start />
    <setProperty name="NTX_profile_in_preRouted">
      <constant>true</constant>
    </setProperty>
    <default-destination>system-b:system</default-destination>
  </route>

next-route

Описание: Обход дефолтного маршрута, с указанием заголовка следующей точки маршрута

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <from uri="direct:pre-route" />
    <setProperty name="NTX_connector_preRouted">
      <constant>true</constant>
    </setProperty>
    <set-destination>system-b</set-destination>
    <next-route local="false" async="false">lama</next-route>
  </route>

где:
lama - идентификатор точки входа (endpoint) в маршруте.
local - переменная, определяющая, является ли следующий маршрут (next-route) локальным (true) или удаленным (false).
async - переменная, определяющая, является ли следующий маршрут (next-route) асинхронным (true) или синхронным (false).

standard-router

Описание: Тег используется для маршрутизации данных на основе заданных правил или условий

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <default-route-start />
    <standard-router />
  </route>

prefer-connector

Описание: Тег используется для выбора выходного коннектора в соответствии с указанными параметрами: протокол, классификатор, тип.

<?xml version="1.0" encoding="UTF-8"?>
  <route>
    <from uri="direct:pre-route" />
    <setProperty name="NTX_connector_preRouted">
      <constant>true</constant>
    </setProperty>
    <set-destination>system-b</set-destination>
    <prefer-connector>
      <protocol>file</protocol>
      <classifier>main</classifier>
      <type>file</type>
    </prefer-connector>
  </route>

Добавлены параметры в компонент system для возможности вызвать компонент вне entaxy генератора:

<to uri="system:system-crm?connectorProtocol=file&amp;connectorClassifier=main&amp;connectorType=file"/>