Перейти к основному содержимому

Свойства узла процесса интеграции вида «Транслятор»

Узел этого вида позволяет менять тело и заголовок сообщения.

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

  • Имя

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

  • Описание

    Произвольное описание узла для разработчика. Используется при редактировании схемы процесса интеграции. Недоступно из встроенного языка

  • ОбновлениеМетрик

    Обработчик, внутри которого можно обновлять метрики, добавленные в проект разработчиком. Пример:

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

    Обработчик, который позволяет изменить заголовки и тело сообщения.

    Сообщение находится в параметре Сообщение. Результирующее сообщение может быть получено из исходного путем изменения свойств его заголовка и/или тела. Если при выполнении обработчика возникает неперехваченная ошибка, сообщение отправляется в канал недоставленных сообщений.

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

Контекст: Приложение хочет отправить сообщение по протоколу HTTP другой информационной системе. Приложение-отправитель передает сообщение в формате XML, в то время как приложение-получатель способно интерпретировать сообщения только в формате JSON.

Задача: В процессе обмена трансформировать тело сообщения из XML в JSON и доставить его в новом формате получателю.

Решение: Используем ПрограммныйИсточник («Вход»), как узел, при помощи которого сообщение из обработчика HTTP-сервиса программно отправляется в процесс интеграции. Из программного источника сообщение попадает в узел-транслятор («Xml2Json»). В обработчике этого узла читается тело сообщения: оно интерпретируется как XML, после чего конвертируется в JSON. Из этого JSON’а получается тело нового сообщения и именно это сообщение возвращается из обработчика. Таким образом, старое сообщение остается неизменным, а далее по маршруту двигается новое сообщение. Оно попадает в Канал1СНазначение, где сохраняется в очередь. На заключительном шаге получатель считывает сообщение из этой очереди.

Обработчик преобразования:

метод КонвертацияТела(Контекст: КонтекстВызоваИнтеграции, 
Сообщение: Стд::ИнтеграционнаяШина::СообщениеИнтеграции): Стд::ИнтеграционнаяШина::СообщениеИнтеграции
исп СтароеТело = Сообщение.ПолучитьТелоКакПоток()
пер Читатель = новый ЧтениеXml(СтароеТело)
исп Поток = новый ВременныйПотокЗаписи()
пер Писатель = новый ЗаписьJson(Поток)
ОбщиеМетоды.Xml2Json(Читатель, Писатель)
исп НовоеТело = Поток.ОткрытьПотокЧтения()
возврат Сообщение.УстановитьТелоИзПотока(НовоеТело)
;