Механизм сопоставления данных при обмене через универсальный формат

image_pdfimage_print
Печать (Ctrl+P)

Механизм сопоставления данных при обмене через универсальный формат

Механизм сопоставления данных предназначен  для решения задачи синхронизации данных между базой источника и базой приемника при обмене

Внутренние идентификаторы объектов

В идеальном случае данные синхронизируемых приложений могли бы сопоставляться по уникальным внутренним идентификаторам объектов (GUID). Но для этого необходимо, чтобы добавление данных, подлежащих синхронизации, осуществлялся только в одном приложении, а в другом эти данные появлялись исключительно в результате синхронизации. В этом случае GUID в двух приложениях у одинаковых объектов будут одинаковыми, и по ним можно будет однозначно сопоставить объекты.

На практике соблюдать данное требование не всегда возможно, особенно в случае настройки синхронизации между приложениями, работа в которых велась независимо. Это связано с тем, что у двух одинаковых объектов, созданных параллельно в каждом приложении, будет два разных GUID.

В некоторых случаях данные не могут быть сопоставлены по GUID по причине его отсутствия (особые случаи, которые не рассматриваются в данной статье).

Публичные идентификаторы объектов

Для успешного сопоставления объектов с разными GUID должно быть место для хранения информация об их соответствии. Таким местом является регистр сведений Публичные идентификаторы синхронизируемых объектов (далее РПИ).

Рис. 1 Регистр сведений Публичные идентификаторы синхронизируемых объектов

Структура регистра представлена в таблице:

Измерения Тип Назначение
Узел информационной базы ПланОбменаСсылка Ссылка на узел плана обмена (настройку обмена), для которой хранится соответствие.
Ссылка

 

СправочникСсылка,
ПланВидовХарактеристикСсылка,
ДокументСсылка
Ссылка на объект текущего приложения.
Идентификатор Строка (36) GUID объекта, полученного от приложения-корреспондента.

 

Для сопоставления  данных двух программ предназначена в БСП 2.3 обработка  “Сопоставление объектов информационных баз” для непосредственного использования при синхронизации данных

Рис 2. Основная форма обработки “Сопоставление объектов информационных баз”

Список открывается по команде Выполнить сопоставление на странице Сопоставление данных Помощника интерактивной синхронизации данных. Также можно дважды щелкнуть мышью по строке, в которой обнаружены проблемы сопоставления данных.

Список состоит из двух колонок, каждая из которых соответствует информационной базе, участвующей в обмене. Данные сгруппированы по объектам программы (документы, списки). В нижней части списка выводится информационная строка: сколько элементов сопоставлено, сколько не сопоставлено.

В поле Выводить можно выбрать, какие данные показывать в списке. По умолчанию выводятся Несопоставленные данные.

Сопоставление объектов

  • Нажмите Сопоставить автоматически (рекомендуется), выберите поля для сопоставления с помощью флажков. Некоторые поля выбраны программой по умолчанию. Для того чтобы подтвердить свой выбор, нажмите Выполнить сопоставление. После поиска программа выводит на просмотр сопоставленные ею данные. Для подтверждения нажмите Применить.
  • После автоматического сопоставления можно оставшиеся объекты сопоставить вручную или изменить сопоставление объектов. Выделите нужные объекты двух баз, нажмите Отменить соответствие, для того чтобы попытаться сопоставить объекты вручную, нажмите Установить соответствие для того чтобы сопоставить объекты.
  • Для подтверждения нажмите Записать и закрыть.

Настройка полей таблицы сопоставления

  • Нажмите Колонки, чтобы добавить поля в колонки списка. С помощью флажков можно отметить дополнительные поля, для подтверждения нажмите Применить.

Получение данных из другой программы

  • Для того чтобы получить данные из другой программы, нажмите Еще –  Загрузить данные из другой программы.

Порядок сопоставления объектов

  • Рекомендуется выполнять сопоставление и загрузку данных с учетом ссылочных связей. Особенно, если поле используется для сопоставления объектов.
  • Например, в конфигурации имеется справочник договоров контрагентов, который подчинен справочнику контрагентов. Сопоставление договоров контрагентов выполняется по справочнику-владельцу, т.е. по справочнику контрагентов. Следовательно, для правильного сопоставления данных необходимо сначала сопоставить и загрузить справочник контрагентов, а затем – справочник договоров контрагентов.
  • В противном случае поля таблицы сопоставления могут содержать фиктивные ссылки вида:
    <Объект не найден> (26:a0b9001b24e002fe11dfba347dd41412).
  • Фиктивная ссылка указывает на объект в текущей информационной базе, который еще не был загружен из сообщения обмена.

Записи в РПИ создаются и на стороне отправителя при подтверждении получения данных корреспондентом через механизм квитирования. В поле Идентификатор в таких записях устанавливается исходный идентификатор объекта. Регистрация таких записей необходима для того, чтобы при получении других данных от корреспондента можно было понимать, что данный объект должен быть исключен из процедуры поиска по полям и по уникальному идентификатору.

Варианты идентификации объектов при получении

Порядок автоматического сопоставления объектов при получении, содержится в правилах конвертации объектов (ПКО), предназначенных для получения данных. Правила ПКО находятся в общем модуле  МенеджерОбменаЧерезУниверсальныйФормат

Рис 3 Разделы общего модуля МенеджерОбменаЧерезУниверсальныйФормат

Отметим, что в общем модуле  МенеджерОбменаЧерезУниверсальныйФормат  находятся все компоненты (правила обработки данных, правила конвертации объектов и т.д.), определяющие прикладную логику обработки данных в процессе их получения, либо отправки . Программный код этого модуля   создается автоматически с помощью  приложения “Конвертация данных, редакция 3.0”  на основе настроенных правил обмена. Программный код модуля можно создавать вручную, но требует от разработчика большого мастерства.

Вариант автоматического сопоставления (идентификации) объектов при получении задается с помощью свойства ВариантИдентификации ПКО

Рис 4. Настройки идентификации в модуле менеджера

Существуют 3 варианта ( 3 значения)  идентификации объекта

  1. ПоУникальномуИдентификатору –идентификация по GUID,
  2. СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска идентификация по GUID и полям поиска,
  3. ПоПолямПоиска –идентификация по полям поиска,
Рис 5. Настройки идентификации в КД3.0.

Еще одним свойством, определяющим логику сопоставления, является массив полей поиска, определяемый в свойстве ПоляПоиска ПКО.

Алгоритм поиска по полям 

Происходит последовательное применение вариантов поиска, заданных в свойстве ПоляПоиска ПКО, используемого при загрузке объекта.

Ограничение.
При сопоставлении на этапе анализа данных применяется только 1-й вариант поиска – ПоУникальномуИдентификатору

Переход к следующему варианту осуществляется в двух случаях:

  1. У загружаемого объекта не заполнено какое-либо из полей, которое указано в варианте поиска.
  2. Вариант поиска не дал результата.

Если в загружаемом объекте есть информация об исходном GUID и вариант идентификации для объекта “По GUID” или “По GUID и полям поиска”, то поиск выполняется среди всех объектов заданного типа, кроме тех, для которых в РПИ уже установлены соответствия.

В остальных случаях поиск осуществляется среди всех объектов информационной базы соответствующего типа.

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

На этапе анализа данных соответствие будет установлено только в том случае, когда для одного объекта отправителя был найден один объект получателя.

На этапе загрузки данных соответствие будет установлено и в том случае, когда для одного объекта отправителя нашлось несколько объектов получателя. В такой ситуации соответствие будет установлено с одним из них.

На этапе загрузки данных вариант поиска Номер + Дата для документов работает следующим образом: номер искомого документа проверяется на точное соответствие, дата определяет интервал, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
На этапе анализа данных этот вариант поиска будет работать как обычно: оба поля будут проверяться на точное соответствие.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *