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