Page tree
Skip to end of metadata
Go to start of metadata

Термины

ТерминОпределение
Идентификатор (ID)Идентификатором НСИ является уникальный ключ по которому можно однозначно определить (найти) элемент НСИ в конкретной системе. Идентификаторы в разных ИС могут отличаться друг от друга. Идентификатором в ИС на платформе 1С является GUID. Идентификатором в прочих ИС может служить любое произвольное поле.
БИТ:MDMИБ 1С "БИТ:Управление основными данными"
База-источникВ контексте данной статьи: база, которая является источником транзакционных данных
База-приемникВ контексте данной статьи: база, которая является приемником транзакционных данных


Требования

В информационной среде интегрированной с БИТ:MDM требуется организовать обмен транзакционными данными (например, документами) между информационными базами

Приемником транзакционных данных может служить информационная база не на платформе 1С

Транзакционные данные в том числе могут содержать ссылки на централизуемые (с использованием БИТ:MDM) и нецентрализуемые справочники

БИТ:MDM "не знает" о существовании транзакционных данных, база-источник дополнительной информации "не знает"идентификаторы базы-приемника, база-приемник "не знает" идентификаторы базы-источника

Обмен транзакционными данными осуществляется с использованием RabbitMQ

Идентификаторы во всех трех системах могут отличаться

Формат сообщений обмена транзакционными данными совпадает с форматом сообщений обмена НСИ, формируемыми БИТ:MDM

Порядок решения

База-приемник дополнительной информации включается в единую информационную среду с участием БИТ:MDM (База-приемник является получателем НСИ из БИТ:MDM)

Организация обмена НСИ между 1С:MDM и базой-приемником осуществляется стандартным образом (с использованием механизмов БИТ:MDM, в т.ч. таблицы ключей)

В базе-источнике должны храниться идентификаторы БИТ:MDM MDM-1110 - Getting issue details... STATUS

Выгрузка транзакционных данных из базы-источника осуществляется в том же формате, что и выгрузка из БИТ:MDM. Одна транзакция = одно сообщение. В сообщения обмена вместо идентификаторов базы-источника выгружаются идентификаторы БИТ:MDM MDM-1111 - Getting issue details... STATUS .

Выгрузка транзакционных данных осуществляется в два этапа: MDM-1109 - Getting issue details... STATUS

  • В обработчике ПриЗаписи добавляется запись в регистр сведений "Отложенная отправка"
  • Обрабатываются данные регистра, при этом, если в регистре сведений обнаруживаются битые ссылки (которые могли возникнуть при откате транзакции), запись с битой ссылкой очищается. В противном случае транзакция (документ) отправляются в RabbitMQ, данные очищаются

Состав выгружаемых транзакционных данных и условия при которых их следует выгружать описывается в базе-источнике

В базе-приемнике необходимо хранить связь между идентификатором MDM и собственным идентификатором

Для справочников, которые не являются централизованными с использованием БИТ:MDM необходимо придерживаться правила: все справочники редактируются только в базе-источнике

Порядок синхронизации

Идентификатор базы-приемника загружается в БИТ:MDM при первоначальной загрузке (в таблицу ключей или в специально созданный для этих целей реквизит справочника в модели данных)

Идентификатор базы-источника загружается в БИТ:MDM при первоначальной загрузке (в таблицу ключей или в реальный GUID элемента)

После выполнения пунктов 1 и 2, а также нормализации вся НСИ выгружается в узел базы-приемника. При этом в сообщения обмена включены (кроме непосредственно реквизитов элемента):

  • Идентификатор базы-приемника (загружен в БИТ:MDM при выполнении п.1)
  • Идентификатор базы-источника (загружен в БИТ:MDM при выполнении п.2)
  • Идентификатор элемента в БИТ:MDM

При загрузке в базу-приемник сообщения из п.3 в базе-приемнике (кроме непосредственно реквизитов элемента) формируется таблица соответствия с полями:

  • Идентификатор БИТ:MDM
  • Идентификатор базы-приемника

Сообщение с транзакционными данными, выгруженное из базы-источника в значениях реквизитов ссылочных типов содержит идентификатор БИТ:MDM. При загрузке сообщения база-приемник осуществляет поиск НСИ по собственной таблице соответствия (см. п. 4)

Сообщение обмена содержит все реквизиты транзакции. Какие именно реквизиты требуется загружать в базу-приемник определяется на стороне базы-приемника

При дальнейшей работе, когда новые элементы НСИ заводятся непосредственно в БИТ:MDM идентификаторы в БИТ:MDM и базе-источнике доп. информации совпадают. Таблица соответствия заполняется при загрузке новых элементов из БИТ:MDM в базу-приемник по правилу:

  • Идентификатор БИТ:MDM
  • собственный ключ поиска (в сообщении отсутствует, формируется базой-приемником самостоятельно при загрузке)

Специальный механизм квитирования (подтверждения базой-приемником получения данных) не предусмотрен, т.к. считаем, что выгруженное в RabbitMQ сообщение всегда доставляется получателю. MDM-696 - Getting issue details... STATUS

Требования к базе-приемнику

Обеспечить возможность хранения таблицы соответствия идентификаторов

Организовать загрузку сообщений (как транзакционных, так и с НСИ) по единому алгоритму:

  • Если по значению идентификатора БИТ:MDM запись в таблице соответствия найдена:
    • элемент НСИ в базе-источнике определяем по таблице соответствия
  • Если по значению идентификатора БИТ:MDM запись в таблице соответствия не найдена и идентификатор базы-приемника заполнен
    • элемент НСИ в базе-источнике определяем по идентификатору базы-приемника
    • добавляем запись в таблицу соответствия
  • Если по значению идентификатора БИТ:MDM запись в таблице соответствия не найдена и идентификатор базы-приемника не заполнен
    • формируем новый идентификатор по своим правилам
    • добавляем новый элемент НСИ, присваиваем сформированный идентификатор
    • добавляем запись в таблицу соответствия

Запретить редактирование элементов НСИ как централизуемых справочников, так и нецентрализуемых справочников, ссылки на которые могут присутствовать в транзакционных данных.

Обеспечить первоначальное заполнение таблицы соответствия для нецентрализуемых справочников (заполнение таблицы соответствия для централизуемых справочников осуществляется при загрузке НСИ из БИТ:MDM)

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

Иллюстрация схемы работы

На примере базы-источника доп. информации: 1C:ERP. база-приемник доп. информации: ORACLE

  • No labels