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

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

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

ОбновлениеМетрик
Обработчик, внутри которого можно обновлять метрики, добавленные в проект разработчиком. Пример:
// Разработчик добавил в проект метрику «СчетчикВУзле». Тогда обновить метрику в узлах
// можно следующим образом:
метод ОбновлениеМетрик(Контекст: МойПроцессИнтеграции.КонтекстВызова, Сообщение: МойПроцессИнтеграции.Сообщение)
    пер СчетчикВУзле = МойПроцессИнтеграции.Метрики["СчетчикВУзле"]
    СчетчикВУзле.Обновить(Сообщение.УзлыПути.Текущий.Узел.Имя, 1)
;
ВыборПолучателей
Обработчик, который позволяет определить получателей сообщения. Возвращает набор узлов, в которые сообщение должно быть передано.

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

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

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

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

Обработчик выбора получателей:

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