Различия

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

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

ru:manual:cooperation:exchange [2012/07/20 15:12]
admin
— (текущий)
Строка 1: Строка 1:
-====== Обмен данными с другими системами ====== 
  
-В Business Studio есть возможность обмена данными с другими программами. Настройка правил обмена осуществляется с помощью справочников Импорта (в интерфейсе администратора системы пункт меню «Администрирование --> Импорт/Экспорт --> Справочники импорта»). В справочнике «Пакет импорта» можно создавать и редактировать объекты -- собственно //Пакеты импорта//, которые описывают правила импорта/экспорта данных (Рис. 1). 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1315.png?nolink |Рис. 14.5.1 //Схема обмена данными с другими программами//}}] 
- 
-Пакеты импорта предназначены для настройки правил обмена Business Studio с другими программами, которые имеют возможность обмена с помощью файлов MS Excel. 
- 
-Также возможен импорт и экспорт самих //Пакетов импорта// с использованием встроенного пакета импорта //ИмпортИмпорта//. 
- 
-Кроме того, задача автоматического обмена данными с другими приложениями может быть осуществлена с использованием технологии OLE. Описание обеспечения возможности работы с приложением Business Studio через OLE дано в [[ru/technical_manual/work_via_ole]]. 
- 
-===== Вид файла импорта ===== 
- 
-Файл импорта MS Excel содержит несколько листов. Каждый лист файла -- это отдельная таблица, обычно характеризующая справочник системы. Таким образом, в одном файле MS Excel можно загружать сразу несколько таблиц. Первая строка таблицы -- перечень наименований полей. Затем идут собственно значения этих полей, количество записей равно количеству загружаемых объектов. 
- 
-Таблица 1. //Файл импорта// //MS ////Excel// 
- 
-^ Лист 1 ^^^^^ 
-| Фамилия | Имя | Отчество | Дата рождения | Комментарий | 
-| Иванов | Иван | Иванович | 29.09.1969 | Кандидат … | 
-| Петров | Петр | Петрович | 04.05.1978 |   | 
-^ Лист 2 ^^^^^ 
-| Фамилия | Имя | Отчество | Тип контакта | Контакт | 
-| Иванов | Иван | Иванович | Этаж/Кабинет | 3 этаж, комната 122 | 
-| Иванов | Иван | Иванович | Домашний телефон | 444333 | 
-| Петров | Петр | Петрович | Этаж/Кабинет | 3 этаж, комната 122 | 
-| Петров | Петр | Петрович | Сотовый телефон | 4 434 434 342 234 | 
-| Петров | Петр | Петрович | Электронная почта | petr@mail.ru | 
- 
-Например, первый лист файла -- это таблица физических лиц, в которой указаны поля //Фамилия, Имя, Отчество//, //Дата рождения, Комментарий// (данные справочника //Физические лица//). Второй лист файла -- это таблица контактов физических лиц, в которой указаны поля //Тип контакта, Контакт// (собственно данные справочника //Контакты ФизЛиц//) и поля //Фамилия, Имя, Отчество// (для определения физического лица, к которому относится данный контакт), см. Таблица 1. 
- 
-===== Виды данных ===== 
- 
-Импортируемые классы бывают 3--х видов: Линейные справочники, Иерархические справочники, Списки объектов. 
- 
-==== Линейные справочники ==== 
- 
-Линейным справочником является обычный справочник-таблица, например «Физические лица». При импорте линейного справочника обязательным является задание ключа. 
- 
-//Ключ// -- это совокупность параметров класса, позволяющих однозначно идентифицировать запись. В Business Studio ключом любого справочника является GUID (глобальный уникальный идентификатор). Но задание таких ключей во внешних программах не всегда удобно, тогда ключом может выступать набор параметров. Например, для класса //Физические лица// ключевыми параметрами могут быть //Фамилия, Имя, Отчество//. Если по указанному ключу будет обнаружено несколько объектов, в процессе импорта будет выдана ошибка. В таком случае, необходимо расширить набор ключевых параметров. 
- 
-==== Иерархические справочники ==== 
- 
-Иерархический справочник -- это справочник с древовидной структурой, например «Объекты деятельности». При импорте иерархического справочника обязательным является задание двух ключей -- ключа собственно объекта, и ключа родителя. 
- 
-//Ключ родителя// -- это ключ, позволяющий однозначно идентифицировать родителя объекта. Если по указанному ключу родителя будет обнаружено несколько объектов--родителей или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому в таблице импорта строки объектов-родителей должны идти раньше строк объектов-потомков. 
- 
-==== Списки объектов ==== 
- 
-Списки объектов -- это списки, принадлежащие определенному объекту (в системе значения хранятся в классах Элементов списков). При импорте списка объектов обязательным является задание двух ключей -- ключа собственно объекта и ключа владельца. 
- 
-//Ключ владельца// -- это ключ, позволяющий однозначно идентифицировать объект--владелец строки списка. Если по указанному ключу владельца будет обнаружено несколько объектов-владельцев или не обнаружено ни одного, в процессе импорта будет выдана ошибка. Поэтому этап импорта справочника-владельца должен идти раньше, чем этап импорта элементов списков. 
- 
-===== Принципы задания соответствий параметров ===== 
- 
-На примере данных, которые содержит Таблица 1, рассмотрим принципы задания соответствий параметров. 
- 
-Сначала необходимо импортировать физических лиц, то есть первым этапом будет импорт строк из листа «Лист 1» в справочник //БизнесМодель.Физлица//. Пусть в данном файле импорта по колонкам //Фамилия, Имя, Отчество// можно однозначно определить импортируемый объект. Тогда ключевыми параметрами объекта //Физлица// будут поля //Фамилия, Имя, Отчество//. Каждое из этих полей можно представить в виде конечной строки. Параметры //Дата рождения, Комментарий// -- не будут являться в данном случае ключевыми. Каждое из этих полей также можно представить в виде конечной строки (Рис. 14.5.2). 
- 
-В случае, если уникальность по названию не соблюдается, и ключ получается слишком сложный, можно использовать одно поле в качестве ключевого. Например, это может быть созданный для этих целей пользовательский параметр, или параметр «guid». 
- 
-**Внимание!** Параметр «guid» формируется системой автоматически при создании нового объекта. Можно использовать его в качестве ключевого только в том случае, если импорт элементов происходит «с нуля», то есть не нужно обновлять существующие элементы в базе. 
- 
-**Внимание!** Параметр «guid» должен быть уникальным для всех Объектов системы. 
- 
-**Внимание!** Длина строкового параметра «guid» ограничена 40 символами. 
- 
-Для ознакомления со структурой данных Business Studio предназначена Объектная модель (см. [[wiki.businessstudio.ru/doku.php/ru/manual/report/object_model]]). 
- 
-**Внимание:** Импортировать можно только в хранимые параметры классов. 
- 
-На Рис. 2 представлена схема импорта физических лиц на основе рассматриваемого примера. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1317.png?nolink |Рис. 2 //Схема импорта в справочник «БизнесМодель.ФизЛица»//}}] 
- 
-В процессе импорта (Рис. 3) по ключевым параметрам //Фамилия, Имя, Отчество// в справочнике //БизнесМодель.Физлица// ищется объект. В случае если такой объект существует, произойдет обновление неключевых параметров //Дата рождения, Комментарий//. В случае если по ключевым параметрам объект не найден -- будет создан новый объект. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1319.png?nolink |Рис. 3}}] 
- 
-Далее необходимо импортировать список контактов физических лиц. То есть вторым этапом будет импорт строк листа «Лист 2» в класс элементов списков //БизнесМодель.КонтактыФизЛиц// из листа «Лист 2» файла импорта. Владельцем списка //БизнесМодель.КонтактыФизЛиц// является справочник //БизнесМодель.Физлица//. Ключ объекта справочника //БизнесМодель.Физлица// -- набор простых параметров //Фамилия, Имя, Отчество//. Таким образом, на данном этапе задается ключ Владельца импортируемого объекта. 
- 
-Однозначно определить контакт в файле импорта позволяет набор колонок //Фамилия, Имя, Отчество, Тип контакта//. Одним из ключевых параметров контакта является объектное поле //Владелец//, но его нельзя представить в виде конечной строки. Ключом поля //Владелец// является набор параметров //Фамилия, Имя, Отчество//, каждый из которых можно представить в виде конечной строки. Другим ключевым параметром контакта является объектное поле //ТипКонтакта//, которое также нельзя представить в виде конечной строки. Однозначным идентификатором объекта //ТипКонтакта// является поле //Название//, его можно представить в виде конечной строки. 
- 
-Таким образом ключом импортируемого объекта будет являться набор двух сложных параметров //Владелец\{Фамилия}{Имя}{Отчество} и ТипКонтакта\Название//. 
- 
-То есть любому сколь угодно сложному объектному параметру можно поставить в соответствие набор текстовых полей, указав «путь» до каждого. Дополнительные параметры у сложного параметра всегда являются ключевыми полями (позволяющими однозначно его идентифицировать). Также дополнительным параметром может являться объектный параметр, в свою очередь содержащий набор полей (опять же, ключевых). 
- 
-Параметр //Контакт// -- не будет являться в данном случае ключевым. Поле //Контакт// можно представить в виде конечной строки. 
- 
-На Рис. 4 представлена схема импорта контактов физических лиц на основе рассматриваемого примера. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1321.png?nolink |Рис. 14.5.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.jpg?nolink |Рис. 8}}] 
- 
-Закладка «Ключ родителя» появляется только для иерархических справочников (Рис. 8). На ней задается имя колонки с признаком группы, и задаются ключевые параметры объекта--родителя для объекта импорта. Если ключ родителя не будет задан, то родителем для всех импортируемых объектов будет считаться корневой объект. 
- 
-На закладке «Ключ родителя» поле //Имя колонки// //Excel с признаком группы// -- это заголовок колонки, в котором будет признак группы, т.е. является ли импортируемый объект папкой или же конечным объектом, не имеющим потомков. Возможные варианты заполнения полей колонки признака группы для импорта объекта см. [[ru/manual/sample_questions/macros_in_report]]. 
- 
-Если //Имя колонки с признаком группы// не будет задано, то все объекты будут импортироваться как группы. 
- 
-===== Настройка соответствий между столбцами файла и параметрами класса ===== 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1331.png?nolink |Рис. 9}}] 
- 
-//Параметр класса// -- параметр класса импорта. Выбирается по кнопке {{ ru/manual/cooperation/exchange/exchange_702.jpg?nolink}} или вводится вручную с клавиатуры (Рис. 9). 
- 
-**Внимание:** При вводе с клавиатуры, необходимо учитывать, что используется системное название параметра. 
- 
-Пример ввода объектного параметра: 
- 
-//        «НазваниеОбъектногоПараметра/НазваниеПараметра».// 
- 
-//Колонка листа// //MS ////Excel// -- заголовок колонки листа. Выбирается по кнопке {{Business%20Studio%20-%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F.files:image702.jpg?16x15}} или вводится вручную с клавиатуры. Выбор колонок листа из списка возможен только в случае, когда при создании пакета импорта был выбран файл генерации. 
- 
-**Внимание:** При вводе с клавиатуры необходимо учитывать, что название чувствительное к регистру. 
- 
-Пример ввода названия колонки для параметра: 
- 
-//        «ЗаголовокКолонки».// 
- 
-Добавление, редактирование и удаление параметров происходит из контекстного меню. 
- 
-Таблица 2. //Контекстное меню параметров описания этапа импорта// 
- 
-| Название пункта | Описание | 
-| Добавить параметр | Открывает окно выбора параметра. Если при загрузке был выбран файл для генерации, затем откроется окно выбора колонки листа. Добавляет новую строку в список параметров. | 
-| Добавить сложный параметр | Открывает окно выбора параметра, затем редактор колонки импорта, добавляет новую строку в список. Описание задания соответствий см. [[ru/manual/cooperation/exchange#принципы_задания_соответствий_параметров|Принципы задания соответствий параметров]]. | 
-| Свойства | Открывает окно «Редактор колонки импорта». | 
-| Удалить параметр | Удаляет выделенную строку из списка параметров. | 
- 
-===== Редактирование колонки импорта ===== 
- 
-Колонка импорта -- часть механизма настройки соответствий между параметром класса и колонкой листа MS Excel. В случае простого параметра колонка импорта напрямую связывает Параметр класса с Колонкой листа импорта (Рис. 2). В случае сложного параметра в колонке импорта указывается объектный параметр класса для настройки соответствий для параметров класса, которому он принадлежит (Рис. 4). 
- 
-С помощью редактора колонки импорта производится настройка дополнительных параметров для сложного параметра. Открывается выбором пункта «Свойства» в контекстном меню строки списка параметров импорта (Рис. 10). 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1333.png?nolink |Рис. 10}}] 
- 
-В поле //Название// указан уникальный идентификатор колонки импорта. 
- 
-Путь до корневого параметра указан: 
- 
-  *для ключевых параметров в поле //Ключ//; 
-  *для неключевых параметров в поле //Параметр//; 
-  *для ключей родителей в поле //Ключ родителя//; 
-  *для ключей владельцев в поле //Ключ владельца//. 
- 
-Чтобы добавить новый параметр, нужно установить курсор в ячейке «Параметр класса» и нажать кнопку {{ru/manual/cooperation/exchange/exchange_702.jpg?nolink}} для выбора параметра из списка параметров класса, либо ввести с клавиатуры системное название параметра. Затем установить курсор в колонку листа и нажать кнопку {{ru/manual/cooperation/exchange/exchange_702.jpg?nolink}} для выбора колонки из списка колонок, либо ввести название колонки вручную с учетом регистра. 
- 
-Кнопка «Редактировать колонку» открывает окно «Редактор колонки импорта» для выделенного параметра. Таким образом, можно создавать сложные параметры любой степени вложенности. 
- 
-===== Выполнение импорта ===== 
- 
-Чтобы выполнить импорт или экспорт из режима администрирования (см. [[ru/manual/administration]]), нужно выбрать пункт меню «Администрирование --> Импорт/Экспорт --> Импорт» или соответственно «Администрирование --> Импорт/Экспорт --> Экспорт». При этом откроется сначала окно выбора пакета импорта, затем -- диалоговое окно выбора файла для импорта или соответственно экспорта. Откроется окно «Выполнение импорта». 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1335.png?nolink |Рис. 11}}] 
- 
-Параметр //Пакет импорта// -- пакет, по которому будет производиться импорт или экспорт. 
- 
-Поля списка этапов импорта: 
- 
-  * //№// -- определяет очередность выполнения этапа импорта; 
-  * //Объект импорта// -- уникальное название этапа импорта; 
-  * //Выбран// -- устанавливает активность этапа импорта; 
-  * //Имя листа// //MS ////Excel// -- название листа файла, из которого происходит импорт на данном этапе; 
-  * //Имя класса приемника// -- системное наименование класса, в который происходит импорт на данном этапе; 
-  * //Ошибки критические// -- текст критических ошибок, возникавших в процессе прохождения этапа импорта; 
-  * //Состояние этапа// -- результат прохождения этапа импорта: не выполнялся, тест не прошел, тест прошел с ошибками, успешно. 
- 
-Кнопка «Включить всё» включает активность всех этапов импорта. Такая операция доступна, если активность хотя бы одного из этапов отключена. Если активность всех этапов включена, название кнопки меняется на «Выключить всё» и ее нажатие отключает активность всех этапов импорта. 
- 
-==== Импорт файла ==== 
- 
-Файл импорта выбирается на закладке «Импорт» (Рис. 12) в графе //Имя файла// по кнопке {{ru/manual/cooperation/exchange/exchange_1338.jpg?29x21}} или вводом с клавиатуры. 
- 
-Опция //Проверка уникальности при первом запуске// -- включает проверку существования объекта при загрузке файла импорта по ключевым полям, это ускоряет загрузку больших массивов информации. 
- 
-**Внимание:** Отключение опции //Проверка уникальности при первом запуске// нужно производить с большой осторожностью, только для пустых баз и при полной уверенности в отсутствии повторяющихся объектов по ключевым параметрам, иначе при импорте возможны ошибки. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1339.png?nolink |Рис. 12}}] 
- 
-Кнопка «Выполнить импорт» запускает процесс импорта. Если в процессе импорта возникнут ошибки -- будет выдано окно «Ошибки критические». 
- 
-**Внимание:** Рекомендуется производить резервное копирование базы данных перед выполнением импорта из файла. 
- 
-==== Экспорт файла ==== 
- 
-Файл экспорта выбирается на закладке «Экспорт» (Рис. 13) в графе //Имя файла// по кнопке {{ru/manual/cooperation/exchange/exchange_1337.jpg?nolink}} или вводом с клавиатуры. 
- 
-[{{ ru/manual/cooperation/exchange/exchange_1341.jpg?nolink |Рис. 13}}] 
- 
-Кнопка «Выполнить экспорт» запускает процесс экспорта. Если в процессе экспорта возникнут ошибки -- будет выдано окно «Ошибки критические». 
- 
-В итоговой строке отображается состояние и результат процесса выполнения импорта или экспорта. 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki