Типы встроенного языка, порождаемые элементом проекта вида «ПроцессИнтеграции»

После того как вы добавили в проект процесс интеграции и дали ему имя, «1С:Шина» создаст несколько типов встроенного языка. Например, если в проекте есть процесс интеграции «СетьМагазинов», то будут созданы следующие типы:

  • СетьМагазинов
    • СетьМагазинов.Схема
    • СетьМагазинов.Параметры
    • СетьМагазинов.Состояние
  • СетьМагазинов.КонтекстВызова
    • СетьМагазинов.УзелСхемы
    • СетьМагазинов.МаршрутСхемы
  • СетьМагазинов.Сообщение
    • СетьМагазинов.УзлыПути
  • СетьМагазинов.Метрики
  • СетьМагазинов.Метрика
  • СетьМагазинов.ИзмерениеМетрики

В общем случае имена этих типов выглядят следующим образом:

  • имя-процесса-интеграции
  • имя-процесса-интеграции.Схема
  • имя-процесса-интеграции.Параметры
  • имя-процесса-интеграции.Состояние
  • имя-процесса-интеграции.КонтекстВызова
  • имя-процесса-интеграции.УзелСхемы
  • имя-процесса-интеграции.МаршрутСхемы
  • имя-процесса-интеграции.Сообщение
  • имя-процесса-интеграции.УзлыПути
  • имя-процесса-интеграции.Метрики
  • имя-процесса-интеграции.Метрика
  • имя-процесса-интеграции.ИзмерениеМетрики

Тип «имя-процесса-интеграции»

Тип имя-процесса-интеграции доступен на сервере.

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

Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа:

// Запустить прцесс интеграции СетьМагазинов
СетьМагазинов.Запустить()

Модуль процесса интеграции

В проекте модуль, расширяющий тип имя-процесса-интеграции, называется модулем процесса интеграции. Они исполняется на сервере.

В этом модуле вы можете обработать события всех узлов процесса интеграции.

Тип «имя-процесса-интеграции.КонтекстВызова»

Тип имя-процесса-интеграции.КонтекстВызова доступен на сервере.

Этот тип не имеет конструктора, экземпляры этого типа доступны в обработчиках событий узлов процесса интеграции в параметре Контекст. Они описывают то место, в котором вызван обработчик. Это либо узел схемы (свойство ТекущийУзел), либо маршрут из одного узла в другой (свойство ТекущийМаршрут).

Например, в узле вида МаршрутизаторПоСодержимому простейший способ отправить сообщение во все следующие узлы:
метод ПроверкаУпаковки(Контекст: КонтекстВызова, 
                       Сообщение: ПримерИнтеграции.Сообщение): Коллекция<УзелСхемы>

   возврат Контекст.ТекущийУзел.СледующиеУзлы.Значения()
;

Тип «имя-процесса-интеграции.Сообщение»

Тип имя-процесса-интеграции.Сообщение доступен на сервере.

Он описывает сообщение и содержит методы для работы с параметрами сообщения, а также для получения и установки тела сообщения.

Также объекты этого типа доступны в обработчиках событий узлов процесса интеграции в параметре Сообщение. Они описывают то сообщение, которое передается по маршруту.

Важным свойством этого типа является свойство УзлыПути. Оно описывает движение сообщения внутри процесса. С его помощью, например, можно узнать, из какого узла пришло сообщение, из Источник1 или из другого:

метод ИмяИзИстории(Контекст: ПримерИнтеграции3.КонтекстВызова, 
                   Сообщение: ПримерИнтеграции3.Сообщение): Строка
    пер Префикс = Сообщение.УзлыПути.Источник.Узел == Схема.Узлы.Источник1 
                     ? "1" 
                     : "2"
    возврат "%{Префикс}-%{Контекст.Участник.Код}"
;

Можно создать сообщение с нуля и отправить его в узлы процесса интеграции. Например, следующий метод получает запрос, в теле которого содержится тело сообщения. Создается новое сообщение и отправляется в узел вида «ПрограммныйИсточник» ОтПартнеров процесса интеграции СетьМагазинов.

метод ОтправитьСообщение(Запрос: HttpСервисЗапрос)
    пер ЯвляетсяАрхивом = Запрос.Заголовки.ПолучитьПервый("content-type") == "application/zip"
    пер Сообщение = новый СообщениеИнтеграции({"ЯвляетсяАрхивом":ЯвляетсяАрхивом}, 
                                                    Запрос.Тело)
    СетьМагазинов.ОтправитьСообщениеВУзлы(Сообщение, СетьМагазинов.Схема.Узлы.ОтПартнеров)
;