Содержание:
1. Схемы разузловки внутри программного продукта 1С: Предприятие Шина
2. Маршрутизация сообщений в системе 1С: Шина
1. Схемы разузловки внутри программного продукта 1С: Предприятие Шина
Согласно интеграционным бизнес-процессам внутри программного продукта 1С:Шина, есть три основные схемы разузловки – виды интеграций:
• Главная схема, которая проводит интеграцию с выбранной системой и получает сообщения по заказам внутри узлов, которые являются источниками. В таком случае, смена формата и подмена по идентификаторам происходит ситуативно. А маршрутизация определяется содержимым в узлах-получателях;
• Интеграционная схема, которая определяет отправку результирующей квитанции, которая будет обратной, в информационную базу-источник согласно заданным критериям;
• Схема интеграции через бота в Telegram. В таком случае именно бот и принимает заказы, и проводит отправку интеграционных сообщений на канал, который отвечает за программные первоисточники.
Далее будет рассмотрена именно первая, основная схема, которая наиболее полным образом объясняет процесс маршрутизации.
2. Маршрутизация сообщений в системе 1С: Шина
Ниже демонстрируется как по главной схеме происходит маршрутизация сообщений в систему «1С:Шина»:
Базы1СИсточники
Опишем подробнее узлы внутри данной схемы:
• Узел «Из1С» - это элемент, который относится к виду «Канал1СИсточник» и отвечает за получение интеграционных сообщений от базы 1С-отправителя;
• Узел «Базы1СИсточники» - это элемент, который относится к виду «ГруппаУчастников», он служит идентификатором перечня участвующих систем, которые смогут производить отправку сообщений в узел «Из1С». Участники определяются таким образом:
Свойства
• Узел «ИзHTTP» - это элемент, который имеет вид «Программный источник» и служит для автоматического создания интеграционных сообщений, чтобы на сервис HTTP могли поступать запросы по заказам. Метод сервиса HTTP называется «sendOrder» и выглядит так:
sendOrder
• Узел «ИзКролика» - это элемент, который имеет вид «RabbitMQ», он необходим для того, чтобы читать сообщения, которые находятся в очереди внутри свойства «Имя канала», его настройка будет следующей:
ИзКролика
• Узел «fromAMQP» - это элемент, который имеет вид «Канал 1С источник». Он отвечает за проведение обменов, согласно AMQP- протоколу;
• Узел «СменаФормата» - элемент, который имеет вид «Транслятор» и служит для преобразования сообщения из «json» в «xml».
• Узел «ЗаменаИдентификаторов», соответственно, совпадает по предназначению со своим названием и производит замену внутри части, которая отвечает за товар внутри заказа, в соответствии с теми значениями, которые находятся внутри MSSQL-сервера. Значение подключения отображается в виде отдельного интеграционного параметра, как можно увидеть на данном скриншоте с примером:
ЗаменаИдентификаторов
Строка подключения к базе данных выполняется при помощи «jdbc connector» и выглядит так, как представлено здесь:
«jdbc:sqlserver://<Имя сервера СУБД>;databaseName=<Имя базы данных>;user=<логин пользователя БД>;password=<пароль пользователя БД >»
• Узел «МаршрутизаторПоТипуЗаказа» - это элемент, который имеет вид «МаршрутизаторПоСодержимому», он отвечает за обоснование выбора конкретного узла, в котором будет получено интеграционное сообщение. Это определение происходит при помощи категории у заказа, она указывается в значении «type», чтобы узнать, нужно выполнить такую обработку, как отображено здесь:
• Узел «В ФастФуд» и узел «В УПО» - это элементы, которые имеют вид «Канал 1С назначение» и служат для того, чтобы отправлять интеграционные сообщения базам данных-адресатам, регламентируются собственными участниками.
В статье было рассмотрено то, какие схемы интеграций по различным узлам доступны при отправке интеграционных сообщений через систему «1С:Шина». А также было рассказано о том, какими именно способами происходит маршрутизация по узлам и за что отвечает каждый узел. Помимо этого, для полного понимания процессов и возможности написания собственных доработок-проектов к «1С:Шина», были представлены обработки для всех узлов схемы маршрутизации.
Специалист компании "Кодерлайн"
Андрей Прыкин