Свойства узла процесса интеграции вида «Транслятор»
Узел этого вида позволяет менять тело и заголовок сообщения.
Свойства узла
- ОбновлениеМетрик
- Обработчик, внутри которого можно обновлять метрики, добавленные в проект
разработчиком.
Пример:
// Разработчик добавил в проект метрику «СчетчикВУзле». Тогда обновить метрику в узлах // можно следующим образом: метод ОбновлениеМетрик(Контекст: МойПроцессИнтеграции.КонтекстВызова, Сообщение: МойПроцессИнтеграции.Сообщение) пер СчетчикВУзле = МойПроцессИнтеграции.Метрики["СчетчикВУзле"] СчетчикВУзле.Обновить(Сообщение.УзлыПути.Текущий.Узел.Имя, 1) ;
- Преобразование
- Обработчик, который позволяет изменить заголовки и тело сообщения.
Пример использования
Контекст: Приложение хочет отправить сообщение по протоколу HTTP другой информационной системе. Приложение-отправитель передает сообщение в формате XML, в то время как приложение-получатель способно интерпретировать сообщения только в формате JSON.
Задача: В процессе обмена трансформировать тело сообщения из XML в JSON и доставить его в новом формате получателю.
Решение: Используем ПрограммныйИсточник («Вход»), как узел, при помощи которого сообщение из обработчика HTTP-сервиса программно отправляется в процесс интеграции. Из программного источника сообщение попадает в узел-транслятор («Xml2Json»). В обработчике этого узла читается тело сообщения: оно интерпретируется как XML, после чего конвертируется в JSON. Из этого JSON’а получается тело нового сообщения и именно это сообщение возвращается из обработчика. Таким образом, старое сообщение остается неизменным, а далее по маршруту двигается новое сообщение. Оно попадает в Канал1СНазначение, где сохраняется в очередь. На заключительном шаге получатель считывает сообщение из этой очереди.
метод КонвертацияТела(Контекст: КонтекстВызова,
Сообщение: Стд::ИнтеграционнаяШина::СообщениеИнтеграции): Стд::ИнтеграционнаяШина::СообщениеИнтеграции
исп СтароеТело = Сообщение.ПолучитьТелоКакПоток()
пер Читатель = новый ЧтениеXml(СтароеТело)
исп Поток = новый ВременныйПотокЗаписи()
пер Писатель = новый ЗаписьJson(Поток)
ОбщиеМетоды.Xml2Json(Читатель, Писатель)
исп НовоеТело = Поток.ОткрытьПотокЧтения()
возврат Сообщение.УстановитьТелоИзПотока(НовоеТело)
;