Различия

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

Ссылка на это сравнение

ru:manual:cooperation:exchange [2013/01/09 17:00]
admin [Настройка соответствий между столбцами файла и параметрами класса]
— (текущий)
Строка 1: Строка 1:
-====== Обмен данными с другими системами ====== 
  
-В Business Studio есть возможность обмена данными с другими программами. Настройка правил обмена осуществляется с помощью справочников Импорта (в интерфейсе администратора системы пункт меню «Администрирование -> Импорт/Экспорт -> Справочники импорта»). В справочнике «Пакет импорта» можно создавать и редактировать объекты - собственно //Пакеты импорта//, которые описывают правила импорта/экспорта данных (Рис. 1). 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1315.png?nolink |Рисунок 1. Схема обмена данными с другими программами}}] 
- 
-Пакеты импорта предназначены для настройки правил обмена Business Studio с другими программами, которые имеют возможность обмена с помощью файлов MS Excel. 
- 
-Также возможен импорт и экспорт самих //Пакетов импорта// с использованием встроенного пакета импорта //ИмпортИмпорта//. 
- 
-Кроме того, задача автоматического обмена данными с другими приложениями может быть осуществлена с использованием технологии OLE. Описание обеспечения возможности работы с приложением Business Studio через OLE дано в [[ru/technical_manual/technical_manual]], глава [[ru/technical_manual/work_via_ole]]. 
- 
-===== Вид файла импорта ===== 
- 
-Файл импорта MS Excel содержит несколько листов. Каждый лист файла - это отдельная таблица, обычно характеризующая справочник системы. Таким образом, в одном файле MS Excel можно загружать сразу несколько таблиц. Первая строка таблицы - перечень наименований полей. Затем идут собственно значения этих полей, количество записей равно количеству загружаемых объектов. 
- 
-<startTableBox> 
-^ Лист 1 ^^^^^ 
-| Фамилия | Имя | Отчество | Дата рождения | Комментарий | 
-| Иванов | Иван | Иванович | 29.09.1969 | Кандидат … | 
-| Петров | Петр | Петрович | 04.05.1978 |   | 
-^ Лист 2 ^^^^^ 
-| Фамилия | Имя | Отчество | Тип контакта | Контакт | 
-| Иванов | Иван | Иванович | Этаж/Кабинет | 3 этаж, комната 122 | 
-| Иванов | Иван | Иванович | Домашний телефон | 444333 | 
-| Петров | Петр | Петрович | Этаж/Кабинет | 3 этаж, комната 122 | 
-| Петров | Петр | Петрович | Сотовый телефон | 4 434 434 342 234 | 
-| Петров | Петр | Петрович | Электронная почта | petr@mail.ru | 
-<endTableBox|Таблица 1. Файл импорта MS Excel> 
- 
-Например, первый лист файла - это таблица физических лиц, в которой указаны поля //Фамилия, Имя, Отчество//, //Дата рождения, Комментарий// (данные справочника //Физические лица//). Второй лист файла - это таблица контактов физических лиц, в которой указаны поля //Тип контакта, Контакт// (собственно данные справочника //Контакты ФизЛиц//) и поля //Фамилия, Имя, Отчество// (для определения физического лица, к которому относится данный контакт), см. Таблица 1. 
- 
-===== Виды данных ===== 
- 
-Импортируемые классы бывают 3-х видов: Линейные справочники, Иерархические справочники, Списки объектов. 
- 
-==== Линейные справочники ==== 
- 
-Линейным справочником является обычный справочник-таблица, например «Физические лица». При импорте линейного справочника обязательным является задание ключа. 
- 
-//Ключ// - это совокупность параметров класса, позволяющих однозначно идентифицировать запись. В Business Studio ключом любого справочника является GUID (глобальный уникальный идентификатор). Но задание таких ключей во внешних программах не всегда удобно, тогда ключом может выступать набор параметров. Например, для класса //Физические лица// ключевыми параметрами могут быть //Фамилия, Имя, Отчество//. Если по указанному ключу будет обнаружено несколько объектов, в процессе импорта будет выдана ошибка. В таком случае, необходимо расширить набор ключевых параметров. 
- 
-==== Иерархические справочники ==== 
- 
-Иерархический справочник - это справочник с древовидной структурой, например «Объекты деятельности». При импорте иерархического справочника обязательным является задание двух ключей - ключа собственно объекта, и ключа родителя. 
- 
-//Ключ родителя// - это ключ, позволяющий однозначно идентифицировать родителя объекта. Если по указанному ключу родителя будет обнаружено несколько объектов-родителей или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому в таблице импорта строки объектов-родителей должны идти раньше строк объектов-потомков. 
- 
-==== Списки объектов ==== 
- 
-Списки объектов - это списки, принадлежащие определенному объекту (в системе значения хранятся в классах Элементов списков). При импорте списка объектов обязательным является задание двух ключей - ключа собственно объекта и ключа владельца. 
- 
-//Ключ владельца// - это ключ, позволяющий однозначно идентифицировать объект-владелец строки списка. Если по указанному ключу владельца будет обнаружено несколько объектов-владельцев или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому этап импорта справочника-владельца должен идти раньше, чем этап импорта элементов списков. 
- 
-===== Принципы задания соответствий параметров ===== 
- 
-На примере данных, которые содержит Таблица 1, рассмотрим принципы задания соответствий параметров. 
- 
-Сначала необходимо импортировать физических лиц, то есть первым этапом будет импорт строк из листа «Лист 1» в справочник //БизнесМодель.Физлица//. Пусть в данном файле импорта по колонкам //Фамилия, Имя, Отчество// можно однозначно определить импортируемый объект. Тогда ключевыми параметрами объекта //Физлица// будут поля //Фамилия, Имя, Отчество//. Каждое из этих полей можно представить в виде конечной строки. Параметры //Дата рождения, Комментарий// - не будут являться в данном случае ключевыми. Каждое из этих полей также можно представить в виде конечной строки (Рис. 14.5.2). 
- 
-В случае, если уникальность по названию не соблюдается, и ключ получается слишком сложный, можно использовать одно поле в качестве ключевого. Например, это может быть созданный для этих целей пользовательский параметр, или параметр «guid». 
- 
-== Внимание! == 
-Параметр «guid» формируется системой автоматически при создании нового объекта. Можно использовать его в качестве ключевого только в том случае, если импорт элементов происходит «с нуля», то есть не нужно обновлять существующие элементы в базе. 
-== Внимание! == 
-Параметр «guid» должен быть уникальным для всех Объектов системы. 
-== Внимание! == 
-Длина строкового параметра «guid» ограничена 40 символами. 
-===== ===== 
-\\ 
-Для ознакомления со структурой данных Business Studio предназначена Объектная модель (см. [[ru/manual/report/object_model]]). 
- 
-== Внимание! == 
-Импортировать можно только в хранимые параметры классов. 
-===== ===== 
-\\ 
-На Рис. 2 представлена схема импорта физических лиц на основе рассматриваемого примера. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1317.png?673x473&nolink |Рисунок 2. Схема импорта в справочник «БизнесМодель.ФизЛица»}}] 
- 
-В процессе импорта (Рис. 3) по ключевым параметрам //Фамилия, Имя, Отчество// в справочнике //БизнесМодель.Физлица// ищется объект. В случае если такой объект существует, произойдет обновление неключевых параметров //Дата рождения, Комментарий//. В случае если по ключевым параметрам объект не найден - будет создан новый объект. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1319.png?nolink |Рисунок 3}}] 
- 
-Далее необходимо импортировать список контактов физических лиц. То есть вторым этапом будет импорт строк листа «Лист 2» в класс элементов списков //БизнесМодель.КонтактыФизЛиц// из листа «Лист 2» файла импорта. Владельцем списка //БизнесМодель.КонтактыФизЛиц// является справочник //БизнесМодель.Физлица//. Ключ объекта справочника //БизнесМодель.Физлица// - набор простых параметров //Фамилия, Имя, Отчество//. Таким образом, на данном этапе задается ключ Владельца импортируемого объекта. 
- 
-Однозначно определить контакт в файле импорта позволяет набор колонок //Фамилия, Имя, Отчество, Тип контакта//. Одним из ключевых параметров контакта является объектное поле //Владелец//, но его нельзя представить в виде конечной строки. Ключом поля //Владелец// является набор параметров //Фамилия, Имя, Отчество//, каждый из которых можно представить в виде конечной строки. Другим ключевым параметром контакта является объектное поле //ТипКонтакта//, которое также нельзя представить в виде конечной строки. Однозначным идентификатором объекта //ТипКонтакта// является поле //Название//, его можно представить в виде конечной строки. 
- 
-Таким образом ключом импортируемого объекта будет являться набор двух сложных параметров //Владелец\{Фамилия}{Имя}{Отчество} и ТипКонтакта\Название//. 
- 
-То есть любому сколь угодно сложному объектному параметру можно поставить в соответствие набор текстовых полей, указав «путь» до каждого. Дополнительные параметры у сложного параметра всегда являются ключевыми полями (позволяющими однозначно его идентифицировать). Также дополнительным параметром может являться объектный параметр, в свою очередь содержащий набор полей (опять же, ключевых). 
- 
-Параметр //Контакт// - не будет являться в данном случае ключевым. Поле //Контакт// можно представить в виде конечной строки. 
- 
-На Рис. 4 представлена схема импорта контактов физических лиц на основе рассматриваемого примера. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1321.png?837x626&nolink |Рисунок 4. Схема настройки пакета импорта для элементов списков «БизнесМодель.КонтактыФизЛиц»}}] 
- 
-В процессе импорта из листа «Лист 2» в элементы списков //БизнесМодель.КонтактыФизЛиц// по ключевым параметрам //Фамилия, Имя, Отчество// в справочнике //БизнесМодель.Физлица// ищется владелец объекта импорта. В случае если владелец не найден - будет выдана ошибка и объект импортирован не будет. Обязательно соблюдение порядка этапов импорта. Для списков сначала импортируются справочники, являющиеся их владельцами. В случае если владелец найден, будет произведен поиск объекта справочника //БизнесМодель.КонтактыФизЛиц// по ключевым параметрам. Далее импорт идет аналогично импорту справочников. То есть, если объект по ключевым параметрам найден - будет произведено обновление неключевых параметров (//Контакт// в данном случае). Если объект не найден, будет создан новый. 
- 
-При импорте иерархических справочников, правила настройки ключа родителя аналогичны правилам настройки ключа владельца для элементов списков. Поэтому первым этапом должны импортироваться объекты-родители, потом объекты-потомки. В процессе импорта иерархического справочника ищется родитель объекта импорта. В случае если родитель не найден - будет выдана ошибка и объект импортирован не будет. 
- 
-Пример создания пакета импорта с настройкой соответствий для сложных параметров описан в [[ru/manual/sample_questions/example_packet_import]]. 
- 
-===== Пакеты импорта ===== 
- 
-Создание и редактирование пакетов импорта осуществляется из справочника «Пакеты импорта». 
- 
-Справочник пакетов импорта можно открыть в режиме администрирования (см. [[ru/manual/administration]]), из меню «Администрирование -> Импорт/Экспорт -> Справочники импорта», выбрать справочник «Пакет импорта». 
- 
-Гиперссылки //__Выполнить экспорт__// и //__Выполнить импорт__// служат соответственно для экспорта и импорта данных по выбранному пакету импорта. 
- 
-Свойства пакета импорта описываются в окне «Редактирование объекта из: Объекты импорта» (Рис. 5). 
- 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1323.png?nolink |Рисунок 5}}] 
- 
-В поле «Пакет импорта» вводится произвольное название пакета импорта. 
- 
-== Внимание! == 
-Название пакета импорта должно быть уникальным. 
-===== ===== 
-\\ 
-Кнопка «Импорт/Экспорт» открывает окно «Выполнение импорта» (см. [[ru/manual/cooperation/exchange#выполнение_импорта|Bыполнение импорта]]). 
- 
-===== Выбор файла для генерации пакета импорта ===== 
- 
-При создании пакета выдается диалоговое окно с предложением «Выбрать файл для генерации пакета импорта». 
- 
-При согласии открывается диалоговое окно для выбора файла MS Excel. Далее будут автоматически заполнены Этапы импорта по названиям листов выбранного файла; будет предложено выбрать классы приемники для каждого этапа; также будет заполнены списки колонок листа по первым строкам листов. В дальнейшем для ввода этапа импорта, названия колонки можно будет использовать заполненные списки. 
- 
-При отказе откроется пустое окно редактирования пакета импорта. В этом случае добавление этапов импорта и заполнение полей колонок возможно только вручную. 
- 
-== Внимание! == 
-При создании собственного пакета импорта рекомендуется выбирать файл для генерации. 
-===== ===== 
-\\ 
-===== Этапы импорта ===== 
- 
-Этапы импорта разделяют импорт параметров по классам и устанавливают порядок импорта (Рис. 6). 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1325.png?nolink |Рисунок 6}}] 
- 
-//№// - порядок выполнения этапа импорта. 
- 
-== Внимание! == 
-Порядок выполнения этапов важен: в первую очередь необходимо загружать справочники, потом ссылающиеся на них списки и справочники. 
-===== ===== 
-\\ 
-//Имя листа// //MS ////Excel// - название листа в файле MS Excel. 
- 
-== Внимание! == 
-Имена листа чувствительны к регистру. Например, имена «Физлица» и «физлица» не являются идентичными. 
-===== ===== 
-\\ 
-//Имя класса приемника// - класс, в который будут импортироваться объекты на данном этапе. 
- 
-Добавление нового этапа происходит из контекстного меню. При этом откроется окно выбора источника (список листов, которые содержались в файле генерации, если он был выбран при создании пакета), затем окно выбора класса приемника. Поле //№// заполняется автоматически, при необходимости его можно изменить. 
- 
-===== Описание этапа импорта ===== 
- 
-Описание этапов импорта служит для настройки соответствий параметров импорта. В зависимости от вида класса приемника описание этапов импорта содержит несколько закладок. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1327.png?nolink |Рисунок 7}}] 
- 
-Закладка «Ключ» обязательная для заполнения, показывается для всех видов справочников (Рис. 7). На ней задаются ключевые параметры класса. 
- 
-Закладка «Параметры» отображается для всех видов справочников, не является обязательной для заполнения. На ней задаются дополнительные (неключевые) параметры класса. 
- 
-Закладка «Ключ владельца» появляется только для элементов списков, является обязательной для заполнения. На ней задаются ключевые параметры класса-владельца списка. Например, для списка //БизнесМодель.КонтактыФизЛиц// классом владельцем является класс //БизнесМодель.ФизическиеЛица//. Владельца класса можно узнать из объектной модели, выбрав в контекстном меню Элементов списков пункт «Перейти к владельцу». 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1329.png?nolink |Рисунок 8}}] 
- 
-Закладка «Ключ родителя» появляется только для иерархических справочников (Рис. 8). На ней задается имя колонки с признаком группы, и задаются ключевые параметры объекта-родителя для объекта импорта. Если ключ родителя не будет задан, то родителем для всех импортируемых объектов будет считаться корневой объект. 
- 
-На закладке «Ключ родителя» поле //Имя колонки// //Excel с признаком группы// - это заголовок колонки, в котором будет признак группы, т.е. является ли импортируемый объект папкой или же конечным объектом, не имеющим потомков. Возможные варианты заполнения полей колонки признака группы для импорта объекта см. [[ru/manual/sample_questions/example_packet_import]]. 
- 
-Если //Имя колонки с признаком группы// не будет задано, то все объекты будут импортироваться как группы. 
-===== Настройка соответствий между столбцами файла и параметрами класса ===== 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1331.png?nolink |Рисунок 9}}] 
- 
-//Параметр класса// - параметр класса импорта. Выбирается по кнопке {{common/3dot.png?nolink}} или вводится вручную с клавиатуры (Рис. 9). 
- 
-== Внимание! == 
-При вводе с клавиатуры, необходимо учитывать, что используется системное название параметра. 
-===== ===== 
-\\ 
-Пример ввода объектного параметра: 
- 
-//        «НазваниеОбъектногоПараметра/НазваниеПараметра».// 
- 
-//Колонка листа// //MS ////Excel// - заголовок колонки листа. Выбирается по кнопке {{common/3dot.png?nolink}} или вводится вручную с клавиатуры. Выбор колонок листа из списка возможен только в случае, когда при создании пакета импорта был выбран файл генерации. 
- 
-== Внимание! == 
-При вводе с клавиатуры необходимо учитывать, что название чувствительно к регистру. 
-===== ===== 
-\\ 
-Пример ввода названия колонки для параметра: 
- 
-//        «ЗаголовокКолонки».// 
- 
-Добавление, редактирование и удаление параметров происходит из контекстного меню. 
- 
- 
-<startTableBox> 
-^  Название пункта  ^  Описание  ^ 
-| Добавить параметр | Открывает окно выбора параметра. Если при загрузке был выбран файл для генерации, затем откроется окно выбора колонки листа. Добавляет новую строку в список параметров. | 
-| Добавить сложный параметр | Открывает окно выбора параметра, затем редактор колонки импорта, добавляет новую строку в список. Описание задания соответствий см. [[ru/manual/cooperation/exchange#принципы_задания_соответствий_параметров|Принципы задания соответствий параметров]]. | 
-| Свойства | Открывает окно «Редактор колонки импорта». | 
-| Удалить параметр | Удаляет выделенную строку из списка параметров. | 
-<endTableBox|Таблица 2. Контекстное меню параметров описания этапа импорта> 
-===== Редактирование колонки импорта ===== 
- 
-Колонка импорта - часть механизма настройки соответствий между параметром класса и колонкой листа MS Excel. В случае простого параметра колонка импорта напрямую связывает Параметр класса с Колонкой листа импорта (Рис. 2). В случае сложного параметра в колонке импорта указывается объектный параметр класса для настройки соответствий для параметров класса, которому он принадлежит (Рис. 4). 
- 
-С помощью редактора колонки импорта производится настройка дополнительных параметров для сложного параметра. Открывается выбором пункта «Свойства» в контекстном меню строки списка параметров импорта (Рис. 10). 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1333.png?nolink |Рисунок 10}}] 
- 
-В поле //Название// указан уникальный идентификатор колонки импорта. 
- 
-Путь до корневого параметра указан: 
- 
-  *для ключевых параметров в поле //Ключ//; 
-  *для неключевых параметров в поле //Параметр//; 
-  *для ключей родителей в поле //Ключ родителя//; 
-  *для ключей владельцев в поле //Ключ владельца//. 
- 
-Чтобы добавить новый параметр, нужно установить курсор в ячейке «Параметр класса» и нажать кнопку {{ru/manual/cooperation/exchange/exchange_702.png?nolink}} для выбора параметра из списка параметров класса, либо ввести с клавиатуры системное название параметра. Затем установить курсор в колонку листа и нажать кнопку {{ru/manual/cooperation/exchange/exchange_702.png?nolink}} для выбора колонки из списка колонок, либо ввести название колонки вручную с учетом регистра. 
- 
-Кнопка «Редактировать колонку» открывает окно «Редактор колонки импорта» для выделенного параметра. Таким образом, можно создавать сложные параметры любой степени вложенности. 
- 
-===== Выполнение импорта ===== 
- 
-Чтобы выполнить импорт или экспорт из режима администрирования (см. [[ru/manual/administration]]), нужно выбрать пункт меню «Администрирование -> Импорт/Экспорт -> Импорт» или соответственно «Администрирование -> Импорт/Экспорт -> Экспорт». При этом откроется сначала окно выбора пакета импорта, затем - диалоговое окно выбора файла для импорта или соответственно экспорта. Откроется окно «Выполнение импорта». 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1335.png?nolink |Рисунок 11}}] 
- 
-Параметр //Пакет импорта// - пакет, по которому будет производиться импорт или экспорт. 
- 
-Поля списка этапов импорта: 
- 
-  * //№// - определяет очередность выполнения этапа импорта; 
-  * //Объект импорта// - уникальное название этапа импорта; 
-  * //Выбран// - устанавливает активность этапа импорта; 
-  * //Имя листа// //MS ////Excel// - название листа файла, из которого происходит импорт на данном этапе; 
-  * //Имя класса приемника// - системное наименование класса, в который происходит импорт на данном этапе; 
-  * //Ошибки критические// - текст критических ошибок, возникавших в процессе прохождения этапа импорта; 
-  * //Состояние этапа// - результат прохождения этапа импорта: не выполнялся, тест не прошел, тест прошел с ошибками, успешно. 
- 
-Кнопка «Включить всё» включает активность всех этапов импорта. Такая операция доступна, если активность хотя бы одного из этапов отключена. Если активность всех этапов включена, название кнопки меняется на «Выключить всё» и ее нажатие отключает активность всех этапов импорта. 
- 
-==== Импорт файла ==== 
- 
-Файл импорта выбирается на закладке «Импорт» (Рис. 12) в графе //Имя файла// по кнопке {{ru/manual/cooperation/exchange/exchange_1337.png?nolink}} или вводом с клавиатуры. 
- 
-Опция //Проверка уникальности при первом запуске// - включает проверку существования объекта при загрузке файла импорта по ключевым полям, это ускоряет загрузку больших массивов информации. 
- 
-== Внимание! == 
-Отключение опции //Проверка уникальности при первом запуске// нужно производить с большой осторожностью, только для пустых баз и при полной уверенности в отсутствии повторяющихся объектов по ключевым параметрам, иначе при импорте возможны ошибки. 
-===== ===== 
-\\ 
-[{{ ru/manual/cooperation/exchange/exchange_1339.png?nolink |Рисунок 12}}] 
- 
-Кнопка «Выполнить импорт» запускает процесс импорта. Если в процессе импорта возникнут ошибки - будет выдано окно «Ошибки критические». 
- 
-== Внимание! == 
-Рекомендуется производить резервное копирование базы данных перед выполнением импорта из файла. 
-===== ===== 
-\\ 
-==== Экспорт файла ==== 
- 
-Файл экспорта выбирается на закладке «Экспорт» (Рис. 13) в графе //Имя файла// по кнопке {{ru/manual/cooperation/exchange/exchange_1337.png?nolink}} или вводом с клавиатуры. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1341.png?nolink |Рисунок 13}}] 
- 
-Кнопка «Выполнить экспорт» запускает процесс экспорта. Если в процессе экспорта возникнут ошибки - будет выдано окно «Ошибки критические». 
- 
-В итоговой строке отображается состояние и результат процесса выполнения импорта или экспорта. 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki