Свойства узла процесса интеграции вида «МаршрутизаторПоСодержимому»

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

Свойства узла

Имя
Имя узла, уникальное в рамках процесса интеграции. Используется для обращения к узлу из встроенного языка (УзелСхемы.Имя). Должно начинаться с буквы, за которой следуют буквы, цифры или символы '_' (нижнее подчеркивание). Минимальная длина — 2 символа
Описание
Произвольное описание узла для разработчика. Используется при редактировании схемы процесса интеграции. Недоступно из встроенного языка
Обработчик определения получателей
Позволяет определить получателей сообщения. Возвращает набор узлов, в которые сообщение должно быть передано.

Пример использования

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

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

Решение: Используем ПрограммныйИсточник, как узел, при помощи которого сообщение из обработчика HTTP-сервиса программно отправляется в процесс интеграции. Из программного источника сообщение попадает в контекстный маршрутизатор, в котором сообщение, в зависимости от того, что в нем содержится, либо попадает в узел-транслятор «Трансформация» и преобразуется к нужному формату, либо напрямую попадает в узел 1СНазначение («V2»). Трансформированное сообщение также потом попадает в узел 1СНазначение («V1»).

Обработчик определения получателей:

метод ТрансформироватьИлиНет(Контекст: КонтекстВызова, Сообщение: МаршрутизаторПример2.Сообщение): Коллекция<УзелСхемы>
    пер СледующийУзел = Сообщение.ПолучитьПараметр("Формат") == 1
        ? Схема.Узлы.Трансформация
        : Схема.Узлы.V2
    возврат [СледующийУзел]
;