Примеры использования
Примеры реализации интеграции с RabbitMQ с использованием БИТ.Адаптера.
Простой пример
Пример: bit-adapter-simple-example
Минимальный пример расширения логики библиотеки адаптера.
Структура
ОбщийМодуль.адаптер_ИнтеграцияПроектный— регистрация модуля с подпискамиОбщийМодуль.адаптерпроект_ИнтеграцияАдаптер— реализация подписок на события
Пример кода
// ОбщийМодуль.адаптер_ИнтеграцияПроектный
Процедура ПриОпределенииМодулейСПодписками(МодулиСПодписками) Экспорт
МодулиСПодписками.Добавить(гд_ИнтеграцияАдаптер);
КонецПроцедуры
// ОбщийМодуль.адаптерпроект_ИнтеграцияАдаптер
Процедура Подписаться(Подписки) Экспорт
Подписки.ЗаполнитьВыгружаемыеОбъекты = Истина;
Подписки.ПолучитьДанныеВыгружаемогоОбъекта = Истина;
Подписки.ЗаписатьМассивДанных = Истина;
КонецПроцедуры
Процедура ЗаполнитьВыгружаемыеОбъекты(ПараметрыПодключения, НастройкиВыгрузки, СтандартнаяОбработка) Экспорт
Для Каждого ВыгружаемыйОбъект из ВыгружаемыеОбъекты() Цикл
адаптер_НастройкиОбмена.ДобавитьНастройку(НастройкиВыгрузки,
ВыгружаемыйОбъект.Метаданные,
ПараметрыПодключения,
Перечисления.адаптер_ФорматыСообщений.адаптерXML,,,
ВыгружаемыйОбъект.Type);
КонецЦИкла;
КонецПроцедуры
Пример: Выгрузка документов по ОС
Пример: acc-bit-adapter-example
Расширение для конфигурации БП КОРП КЗ, выгружающее документы по Основным средствам.
Выгружаемые объекты
- Справочник
ОсновныеСредства - Документы:
ПринятиеКУчетуОССписаниеОСПередачаОСПеремещениеОСМодернизацияОСИзменениеПараметровНачисленияАмортизацииОСПоступлениеТоваровУслугЗакрытиеМесяца
Особенности
- Используется формат сообщений
JSONMobile - Реализована функция
ПолучитьИмяТекущейБазы()для идентификации базы-источника - Реализованы подписки для фильтрации данных при выгрузке
Пример: Загрузка документов ОС
Пример: cpm-bit-adapter-example
Расширение для конфигурации УХ, загружающее документы по Основным средствам.
Особенности
- Загрузка данных из нескольких источников (УПП ОАО, УПП ЗАО, БП Беларусь, БП Казахстана)
- Обработка входящих сообщений и создание документов в информационной базе
- Поддержка различных форматов сообщений
Структура модулей
адаптерпроект_Интеграция— основная логика интеграцииадаптерпроект_Обмен— логика обмена даннымиадаптерпроект_ОбменПовтИсп— повторное использование обмена- Модули для работы с конкретными базами (УППАО, УППЗАО, БПБеларусь, БПКазахстана)
Паттерны разработки
Определение выгружаемых объектов
Функция ВыгружаемыеОбъекты()
ВыгружаемыеОбъекты = Новый ТаблицаЗначений;
ВыгружаемыеОбъекты.Колонки.Добавить("Метаданные");
ВыгружаемыеОбъекты.Колонки.Добавить("Type");
ВыгружаемыеОбъекты.Колонки.Добавить("ФорматСообщений");
ДобавитьВыгружаемыйОбъект(ВыгружаемыеОбъекты,
Метаданные.Справочники.ОсновныеСредства,
Перечисления.адаптер_ФорматыСообщений.JSONMobile);
Возврат ВыгружаемыеОбъекты;
КонецФункции
Получение данных объекта
Функция ПолучитьДанныеВыгружаемогоОбъекта(Объект, ДанныеСообщения) Экспорт
Результат = Неопределено;
Попытка
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ДанныеСообщения.Type);
Результат = Вычислить(СтрШаблон("МенеджерОбъекта.ПолучитьДанныеДляRabbitMq(Объект, ДанныеСообщения)"));
Исключение
// Обработка ошибок
КонецПопытки;
Возврат Результат;
КонецФункции
Запись входящих данных
Функция ЗаписатьМассивДанных(ДанныеОбъекта) Экспорт
Результат = Неопределено;
ТипДанных = ДанныеОбъекта.Type;
Если ТипДанных = "справочник.ОсновныеСредства" Тогда
Результат = ЗаписатьСправочник_ОсновныеСредства(ДанныеОбъекта);
КонецЕсли;
Возврат Результат;
КонецФункции
Рекомендации
- Используйте менеджеры объектов — выносите логику получения данных в менеджеры объектов
- Обрабатывайте ошибки — всегда используйте
Попытка...Исключениепри работе с динамическими вызовами - Идентификация базы — реализуйте
ПолучитьИмяТекущейБазы()для корректной идентификации источника данных - Фильтрация данных — используйте
ЗаполнитьТекстыЗапросовУсловиямидля фильтрации выгружаемых данных - Форматы сообщений — выбирайте подходящий формат (XML, JSON, JSONMobile) в зависимости от требований