Обрабатывает получаемые каналом сервиса интеграции сообщения.
Синтаксис
<Имя обработчика полученного сообщения>(<Сообщение>, <Отказ>)Полное описание, параметры и ограничения
Модуль сервиса интеграции.<Имя обработчика полученного сообщения> (Integration service module.<Received message handler name>)
Модуль сервиса интеграции (Integration service module)
<Имя обработчика полученного сообщения> (<Received message handler name>)
Доступен, начиная с версии 8.3.17.
Синтаксис:
<Имя обработчика полученного сообщения>(<Сообщение>, <Отказ>)
Параметры:
<Сообщение>
Тип: СообщениеСервисаИнтеграции.
Содержит сообщение сервиса интеграции.
<Отказ>
Признак отмены выполненных в информационной базе изменений.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то изменения, выполненные в информационной базе, отменяются, обработчик будет вызван повторно.
Описание:
Обрабатывает получаемые каналом сервиса интеграции сообщения.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.3.17.
Методическая информация
Практические примеры
Свой входящий канал: журнал и временный повтор
Полный обработчик назначается реальному свойству метаданных своего сервиса. Контракт и результат не подменяются фиктивным запуском.
Где и как запускать
Модуль собственного HTTP-сервиса / Web-сервиса / сервиса интеграции в точности по подготовке.
Подготовка
Общие → Сервисы интеграции: свой УчебныйОбменКниг, входящий канал ВходКниг. Обработчик полученного сообщения — ПринятьУчебноеСообщение из модуля этого сервиса.
Создайте собственную константу ПриемУчебныхСообщенийОстановлен типа Булево. По умолчанию Ложь. Для ручного опыта требуется уже настроенная собственная шина интеграции и только учебное сообщение; пример транспорт не устанавливает и ничего не отправляет.
Наблюдайте собственный журнал регистрации по событиям УчебныйПрием.Получено / УчебныйПрием.Отложено. Идентификатор и размер берутся из сообщения платформы; личное содержимое не записывается в журнал.
Кратковременно включите свою константу для изучения повторного вызова, затем верните Ложь. Отказ=Истина не является штатной паузой очереди: изменения откатываются, сообщение будет обработано повторно, частоту определяет механизм интеграции. Не держите бесконечные повторы в рабочем сервисе.
Процедура ПринятьУчебноеСообщение(Сообщение, Отказ) Экспорт
Если Константы.ПриемУчебныхСообщенийОстановлен.Получить() Тогда
Отказ = Истина;
ЗаписьЖурналаРегистрации("УчебныйПрием.Отложено", УровеньЖурналаРегистрации.Предупреждение,
, , Строка(Сообщение.Идентификатор));
Возврат;
КонецЕсли;
Комментарий = СтрШаблон("ID %1; размер %2 байт", Сообщение.Идентификатор, Сообщение.РазмерТела);
ЗаписьЖурналаРегистрации("УчебныйПрием.Получено", УровеньЖурналаРегистрации.Информация, , , Комментарий);
КонецПроцедурыРазбор по шагам
Создайте указанный собственный сервис / операцию / канал и его учебные данные.
Назначьте функцию или процедуру соответствующему обработчику в Конфигураторе.
Для ручной проверки используйте только собственную тестовую публикацию / шину; здесь внешних вызовов не было.
Как проверить результат
Обработчик получает СообщениеСервисаИнтеграции и настоящий Отказ. Тип не подменяется структурой с полем Тело; у этого объекта нет выдуманного ПолучитьТелоКакСтроку.
При Ложь фиксируются фактические ID / размер; при Истина откатываются изменения обработки и планируется повтор. Постоянная ошибка формата не должна бесконечно отправляться на повтор этим флагом.
Ожидаемый результат
Показана точная сигнатура и обычная обработка конкретного собственного сервиса.
На что обратить внимание
HTTP, SOAP и сервис интеграции имеют разные типы параметров и результатов.
BSL, HTTP-запросы, SOAP-запросы и работа шины при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.