|
|
|
|||||||||
|
Простой пример использования XML-DEMРассмотрим простую операцию по выгрузке и загрузке данных. Допустим, нам необходимо выгрузить данные по трем клиентам — Группа «Кэннон» (10000), ЗАО «Нефтегаз» (20000) и Страховая компания РОСНО (30000) — с адресами доставки. После чего, мы проанализируем получившийся Данный пример характеризует не только обмен данными между двумя базами Navision, но и показывает возможность настройки выгрузки данных в Основная настройка обмена производится в форме ExchObject Form.
Как вы видите, форма разделена на три функциональные части: шапку и две табличные области. Шапка содержит общую информацию по объекту обмена и условиям выгрузки разнесенную на несколько закладок. Первая табличная область содержит поля объекта обмена. Вторая табличная область содержит условия связи с подчиненными объектами. Создадим новый объект обмена — Customer (Клиент). Для этого в реквизите объекта обмена «ID» занесем номер — 10000 (можно присвоить любой другой номер или же не заполнять вообще, в этом случае номер присваивается автоматически). В реквизите «Table No» введем — 18 (номер таблицы Customer), либо нажав кнопку Lookup и выбрав из списка таблиц Navision. Мы можем увидеть, что первая табличная область заполнилась списком полей таблицы Customer. Для простоты оставим только первые 8 полей таблицы, для этого удалим остальные поля. Так же можно было просто поставить метку запрета выгрузки в ExportDisable. Сделаем это для полей «Name 2» и «Address 2». С помощью кнопок навигации закладки Export Sample можно просмотреть данные, которые будут выгружаться. Они отображаются в реквизите первой табличной области ExportSample.
На закладке Files Path пропишем путь и название Теперь нам надо задать условие, для того чтобы выгрузить информацию только по интересующим нас клиентам. Для этого перейдем на закладку Root Params. Нажмем на кнопку Drill Down реквизита Condition. В форме ExchObjectRef List, отображающей список условий обмена введем значение реквизита Condition. С помощью кнопки AssistEdit перейдем в форму ExchRefCondition и заполним реквизиты так, как показано на рисунке ниже. (Выгружаться будут только данные по клиентам с номерами 10000, 20000 и 30000.)
Следующим шагом, мы настроим выгрузку таблицы с адресами поставки по этим клиентам. Таблица
Нажав Клавишу F5 мы откроем форму ExchObjects, отображающую список объектов обмена.
Выберем объект Customer и сформируем условия связи с дочерним объектом
Все готово для формирования нашего Хочется еще раз заметить, что полученный Теперь посмотрим наш
Теперь создадим файл загрузки. Так как мы будем загружать данные в ту же базу, то для того чтобы проследить изменения, в базе данных после загрузки, отредактируем файл e_export.xml и сохраним его с именем e_import.xml по адресу С:My XML File (т.е. то имя и тот адрес, который мы указали на закладке Files Path в реквизите Import Path). Данные изменим следующим образом:
Мы подготовили файл для загрузки и так как изменения коснулись только данных, а структура
Для загрузки нажмите кнопку ExchObject и в выпавшем меню выберете Import, либо нажмите Shift+Ctrl+I. Предупреждения об ошибках в процессе обмена, если они были, можно посмотреть в файле e_log.txt, путь и название которого мы указали на закладке Files Path в реквизитах Log Path и Log File. Если предупреждений не было, то загрузка прошла успешно. В этом можно убедиться, если посмотреть содержимое таблиц Customer и Обратите внимание, если данные нужно было бы загружать в другую базу, то можно сформировать шаблон, при загрузке которого, все настройки были бы перенесены автоматически. Более подробно об использовании шаблонов обмена можно посмотреть в инструкции пользователя Данный пример отражает лишь простейшие настройки для выгрузки и загрузки данных, используя XML- файлы. К примеру, мы не использовали такие реквизиты объекта обмена, как ExportValue и ImportValue. Они позволяют для полей, участвующих в обмене указать значение, которое будет выгружено или загружено в процессе обмена. Это значение может быть как константой, так и вычисляться с помощью пользовательской функции (UDF User Defined Function). Хочется заметить, что запуск обмена из объектов ExchObject может служить в основном для настройки и проверки правильности работы объекта. В качестве же основного механизма обмена, мы рассматриваем пакеты обмена, в одном пакете обмена можно использовать одновременно нескольких объектов ExchObject в одном сеансе обмена. Причем запустить обмен пакетами возможно из любой обработки Navision. Более подробно об этих и других возможностях
|
|||||||||
![]() |
|
|||||||||