Обмен данными с другими системами
В Business Studio есть возможность обмена данными с другими программами. Настройка правил обмена осуществляется с помощью справочников Импорта (в интерфейсе администратора системы пункт меню «Администрирование –> Импорт/Экспорт –> Справочники импорта»). В справочнике «Пакет импорта» можно создавать и редактировать объекты – собственно Пакеты импорта, которые описывают правила импорта/экспорта данных (Рис. 13.5.1).
Рис. 13.5.1 Схема обмена данными с другими программами
Пакеты импорта предназначены для настройки правил обмена Business Studio с другими программами, которые имеют возможность обмена с помощью файлов MS Excel.
Также возможен импорт и экспорт самих Пакетов импорта с использованием встроенного пакета импорта ИмпортИмпорта.
Вид файла импорта
Файл импорта MS Excel содержит несколько листов. Каждый лист файла – это отдельная таблица, обычно характеризующая справочник системы. Таким образом, в одном файле MS Excel можно загружать сразу несколько таблиц. Первая строка таблицы – перечень наименований полей. Затем идут собственно значения этих полей, количество записей равно количеству загружаемых объектов.
Таблица 13.5.1 Файл импорта MS Excel
Лист 1 | ||||
Фамилия | Имя | Отчество | Дата рождения | Комментарий |
Иванов | Иван | Иванович | 29.09.1969 | Кандидат … |
Петров | Петр | Петрович | 04.05.1978 | |
Лист 2 | ||||
Фамилия | Имя | Отчество | Тип контакта | Контакт |
Иванов | Иван | Иванович | Этаж/Кабинет | 3 этаж, комната 122 |
Иванов | Иван | Иванович | Домашний телефон | |
Петров | Петр | Петрович | Этаж/Кабинет | 3 этаж, комната 122 |
Петров | Петр | Петрович | Сотовый телефон | 4 434 434 342 234 |
Петров | Петр | Петрович | Электронная почта | [email protected] |
Например, первый лист файла – это таблица физических лиц, в которой указаны поля Фамилия, Имя, Отчество, Дата рождения, Комментарий (данные справочника Физические лица). Второй лист файла – это таблица контактов физических лиц, в которой указаны поля Тип контакта, Контакт (собственно данные справочника Контакты ФизЛиц) и поля Фамилия, Имя, Отчество (для определения физического лица, к которому относится данный контакт), см. Таблица 13.5.1.
Виды данных
Импортируемые классы бывают 3–х видов: Линейные справочники, Иерархические справочники, Списки объектов.
Линейные справочники
Линейным справочником является обычный справочник-таблица, например «Физические лица». При импорте линейного справочника обязательным является задание ключа.
Ключ – это совокупность параметров класса, позволяющих однозначно идентифицировать запись. В Business Studio ключом любого справочника является GUID (глобальный уникальный идентификатор). Но задание таких ключей во внешних программах не всегда удобно, тогда ключом может выступать набор параметров. Например, для класса Физические лица ключевыми параметрами могут быть Фамилия, Имя, Отчество. Если по указанному ключу будет обнаружено несколько объектов, в процессе импорта будет выдана ошибка. В таком случае, необходимо расширить набор ключевых параметров.
Иерархические справочники
Иерархический справочник – это справочник с древовидной структурой, например «Объекты деятельности». При импорте иерархического справочника обязательным является задание двух ключей – ключа собственно объекта, и ключа родителя.
Ключ родителя – это ключ, позволяющий однозначно идентифицировать родителя объекта. Если по указанному ключу родителя будет обнаружено несколько объектов–родителей или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому в таблице импорта строки объектов-родителей должны идти раньше строк объектов-потомков.
Списки объектов
Списки объектов – это списки, принадлежащие определенному объекту (в системе значения хранятся в классах Элементов списков). При импорте списка объектов обязательным является задание двух ключей – ключа собственно объекта и ключа владельца.
Ключ владельца – это ключ, позволяющий однозначно идентифицировать объект–владелец строки списка. Если по указанному ключу владельца будет обнаружено несколько объектов-владельцев или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому этап импорта справочника-владельца должен идти раньше, чем этап импорта элементов списков.
13.5.3 Принципы задания соответствий параметров
На примере данных, которые содержит Таблица 13.5.1, рассмотрим принципы задания соответствий параметров.
Сначала необходимо импортировать физических лиц, то есть первым этапом будет импорт строк из листа «Лист 1» в справочник БизнесМодель.Физлица. Пусть в данном файле импорта по колонкам Фамилия, Имя, Отчество можно однозначно определить импортируемый объект. Тогда ключевыми параметрами объекта Физлица будут поля Фамилия, Имя, Отчество. Каждое из этих полей можно представить в виде конечной строки. Параметры Дата рождения, Комментарий – не будут являться в данном случае ключевыми. Каждое из этих полей также можно представить в виде конечной строки (Рис. 13.5.2).
Для ознакомления со структурой данных Business Studio предназначена Объектная модель (см. п. 11.1).
Внимание: Импортировать можно только в хранимые параметры классов.
На Рис. 13.5.2 представлена схема импорта физических лиц на основе рассматриваемого примера.
Рис. 13.5.2 Схема импорта в справочник «БизнесМодель.ФизЛица»
В процессе импорта (Рис. 13.5.3) по ключевым параметрам Фамилия, Имя, Отчество в справочнике БизнесМодель.Физлица ищется объект. В случае если такой объект существует, произойдет обновление неключевых параметров Дата рождения, Комментарий. В случае если по ключевым параметрам объект не найден – будет создан новый объект.
Рис. 13.5.3
Далее необходимо импортировать список контактов физических лиц. То есть вторым этапом будет импорт строк листа «Лист 2» в класс элементов списков БизнесМодель.КонтактыФизЛиц из листа «Лист 2» файла импорта. Владельцем списка БизнесМодель.КонтактыФизЛиц является справочник БизнесМодель.Физлица. Ключ объекта справочника БизнесМодель.Физлица – набор простых параметров Фамилия, Имя, Отчество. Таким образом, на данном этапе задается ключ Владельца импортируемого объекта.
Однозначно определить контакт в файле импорта позволяет набор колонок Фамилия, Имя, Отчество, Тип контакта. Одним из ключевых параметров контакта является объектное поле Владелец, но его нельзя представить в виде конечной строки. Ключом поля Владелец является набор параметров Фамилия, Имя, Отчество, каждый из которых можно представить в виде конечной строки. Другим ключевым параметром контакта является объектное поле ТипКонтакта, которое также нельзя представить в виде конечной строки. Однозначным идентификатором объекта ТипКонтакта является поле Название, его можно представить в виде конечной строки.
Таким образом ключом импортируемого объекта будет являться набор двух сложных параметров Владелец\{Фамилия}{Имя}{Отчество} и ТипКонтакта\Название.
То есть любому сколь угодно сложному объектному параметру можно поставить в соответствие набор текстовых полей, указав «путь» до каждого. Дополнительные параметры у сложного параметра всегда являются ключевыми полями (позволяющими однозначно его идентифицировать). Также дополнительным параметром может являться объектный параметр, в свою очередь содержащий набор полей (опять же, ключевых).
Параметр Контакт – не будет являться в данном случае ключевым. Поле Контакт можно представить в виде конечной строки.
На Рис. 13.5.4 представлена схема импорта контактов физических лиц на основе рассматриваемого примера.
Рис. 13.5.4 Схема настройки пакета импорта для элементов списков
«БизнесМодель.КонтактыФизЛиц»
В процессе импорта из листа «Лист 2» в элементы списков БизнесМодель.КонтактыФизЛиц по ключевым параметрам Фамилия, Имя, Отчество в справочнике БизнесМодель.Физлица ищется владелец объекта импорта. В случае если владелец не найден – будет выдана ошибка и объект импортирован не будет. Обязательно соблюдение порядка этапов импорта. Для списков сначала импортируются справочники, являющиеся их владельцами. В случае если владелец найден, будет произведен поиск объекта справочника БизнесМодель.КонтактыФизЛиц по ключевым параметрам. Далее импорт идет аналогично импорту справочников. То есть, если объект по ключевым параметрам найден – будет произведено обновление неключевых параметров (Контакт в данном случае). Если объект не найден, будет создан новый.
При импорте иерархических справочников, правила настройки ключа родителя аналогичны правилам настройки ключа владельца для элементов списков. Поэтому первым этапом должны импортироваться объекты-родители, потом объекты-потомки. В процессе импорта иерархического справочникаищется родитель объекта импорта. В случае если родитель не найден – будет выдана ошибка и объект импортирован не будет.
Пример создания пакета импорта с настройкой соответствий для сложных параметров описан в п. 16.5.
Пакеты импорта
Создание и редактирование пакетов импорта осуществляется из справочника «Пакеты импорта».
Справочник пакетов импорта можно открыть в режиме администрирования (см. Глава 15), из меню «Администрирование –> Импорт/Экспорт –> Справочники импорта», выбрать справочник «Пакет импорта».
Гиперссылки Выполнить экспорт и Выполнить импорт служат соответственно для экспорта и импорта данных по выбранному пакету импорта.
Свойства пакета импорта описываются в окне «Редактирование объекта из: Объекты импорта» (Рис. 13.5.5).
Рис. 13.5.5
В поле «Пакет импорта» вводится произвольное название пакета импорта.
Внимание: Название пакета импорта должно быть уникальным.
Кнопка «Импорт/Экспорт» открывает окно «Выполнение импорта» (см. п. 13.5.10).