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