Свойства узла процесса интеграции вида «МаршрутизаторПоСодержимому»
Узел этого вида предназначен для того, чтобы определять, в какие узлы из тех, что идут непосредственно за этим узлом, должны попасть сообщения.
Свойства узла
- ОбновлениеМетрик
- Обработчик, внутри которого можно обновлять метрики, добавленные в проект
разработчиком.
Пример:
// Разработчик добавил в проект метрику «СчетчикВУзле». Тогда обновить метрику в узлах // можно следующим образом: метод ОбновлениеМетрик(Контекст: МойПроцессИнтеграции.КонтекстВызова, Сообщение: МойПроцессИнтеграции.Сообщение) пер СчетчикВУзле = МойПроцессИнтеграции.Метрики["СчетчикВУзле"] СчетчикВУзле.Обновить(Сообщение.УзлыПути.Текущий.Узел.Имя, 1) ;
- ВыборПолучателей
- Обработчик, который позволяет определить получателей сообщения. Возвращает набор узлов, в которые сообщение должно быть передано.
Пример использования
Контекст: Приложение хочет отправить сообщение по протоколу HTTP другой информационной системе. У сообщения может быть две версии формата: новая — которую получатель сможет обработать, и старая — которую получатель обработать не сможет. Если в процесс интеграции поступает сообщение старой версии формата, его формат вначале преобразуется к новой версии, и только после этого доставляется получателю.
Задача: В процессе обмена определить версию формата входящего сообщения, и в зависимости от версии либо отправить сообщение получателю как есть, либо предварительно преобразовать его в нужный формат и затем доставить потребителю.
Решение: Используем ПрограммныйИсточник, как узел, при помощи которого сообщение из обработчика HTTP-сервиса программно отправляется в процесс интеграции. Из программного источника сообщение попадает в контекстный маршрутизатор, в котором сообщение, в зависимости от того, что в нем содержится, либо попадает в узел-транслятор «Трансформация» и преобразуется к нужному формату, либо напрямую попадает в узел 1СНазначение («V2»). Трансформированное сообщение также потом попадает в узел 1СНазначение («V1»).
Обработчик выбора получателей:
метод ТрансформироватьИлиНет(Контекст: КонтекстВызова, Сообщение: МаршрутизаторПример2.Сообщение): Коллекция<УзелСхемы>
пер СледующийУзел = Сообщение.ПолучитьПараметр("Формат") == 1
? Схема.Узлы.Трансформация
: Схема.Узлы.V2
возврат [СледующийУзел]
;