Совет Максима Горбунова о существующей в Аксапте возможности публикации данных в xml-формате. При помощи сервера пакетов можно публиковать данные. Причем публиковать можно в автоматическом режиме по заданному расписанию.
Максим Горбунов, maxim@mazzy.ru
Загрузить
xmlpublish.zip (4.5Kb, внутри AxXMLExport.xsd, SysINetPublishXMLExport.xpo, XMLPublishFix.xpo. Для загрузки требуется регистрация на форуме у Mazzy)
Выгрузка данных в XML c помощью менеджера публикаций Axapta
Одной из задач, стоявших перед разработчиками языка XML было создание языка, который будет поддерживаться большим набором приложений. Сейчас, когда с момента создания языка в 1996 году прошло восемь лет, можно сказать, что цель была достигнута: XML де-факто стал стандартом для обмена информацией между приложениями. Axapta, которая с самого своего рождения развивалась под знаком передовых технологий, разумеется, не могла игнорировать XML.
Что же предлагается пользователю Axapta для обмена данными в формате XML? К сожалению, не так уж и много. В первую очередь, обычно, вспоминают Commerce Gateway, предназначенный для обмена данными через Microsoft BizTalk Server. Вероятно, это наиболее технологичный вариант, позволяющий гибкую настройку. Однако, в случае, если все, что Вам необходимо, просто заставить обменятся данными две программы, обе из которых работают в общем сетевом окружении, связка «Commerce Gateway + MS BizTalk Server» вряд ли будет оптимальным решением, так как потребует слишком много ресурсов уже на этапе первоначальной настройки.
С моей точки зрения, гораздо более простой альтернативой использованию Commerce Gateway для обмена данными Axapta является Менеджер публикаций, входящий в состав стандартного приложения еще с версии 2.0. Он позволяет:
- Публиковать данные в формате XML на основании таблиц Axapta;
- Использовать запросы Axapta для формирования выгружаемой выборки;
- Вместе с полями таблиц выгружать значения display -методов (без доработки работает только при выгрузке в HTML);
- Создавать пакетные задания по выгрузке данных для запуска в режиме сервера пакетной обработки.
Настройка публикаций
Менеджер публикаций исключительно прост в настройке. Вся работа происходит в форме «Менеджер публикаций» (Рисунок 1).

Рисунок 1
Для того, чтобы эта форма нормально открылась, добавьте хотя бы одно изображение в форму «Изображения» (Главное меню – Администрирование – Настройки – Интернет – Изображения).
Нажмите на кнопку «Новый…» (Рисунок 2), чтобы создать новый шаблон публикации.

Рисунок 3
В появившейся форме (Рисунок 3) Вам предлагается выбрать способ создания шаблона публикации (явное подражание офисным продуктам Microsoft, правда способ только один) и дать ему название. Как только Вы справитесь с этой задачей, нажимайте кнопку «Открыть…». После этого запустится Мастер шаблонов публикации данных, который поможет Вам создать новый шаблон за шесть несложных шагов. В процессе работы с мастером Вам предстоит выбрать:
- Выборку, на основании которой будет строиться публикация (это может быть таблица или запрос);
- Поля и методы выборки, которые будут выводиться в публикацию (в стандартном приложении этот шаг имеет смысл только для выгрузки данных в HTML -шаблоны, однако установив модификацию, приложенную к этой статье, Вы сможете заставить Axapta функционировать похожим образом и в случае выгрузки в XML);
- Выходную форму публикации: XML или HTML (HTML-публикации можно создавать как в виде карточек, когда каждому объекту выборки соответствует HTML-документ, так и в виде списка);
- Имя файла, в который данные будут выгружаться;
- Расписание, по которому будет осуществляться выгрузка (по сути, расписание запуска задания сервером пакетной обработки).
В результате работы мастера Вы получите новый шаблон публикации (Рисунок 4).
Нажав на кнопку «Выбрать…», Вы сможете ограничить выгружаемую выборку (Рисунок 5).
Наконец, нажмите на кнопку «Опубликовать», чтобы создать файл с выгруженными данными.
В результате Вы получите XML -документ, который соответствует следующей схеме AxXMLExport.xsd (Рисунок 6).

Рисунок 6
Структура XML -документа описана в с файле со схемой в тегах аннотации. Повторю теги в виде таблице и в самой статье:
| Тег | Описание |
AxaptaXMLExport |
Корневой элемент. Встречается ровно один раз. |
definitions |
Описание структуры выгруженных данных. При выгрузке данных мастером публикаций элемент не заполняется, однако обрабатывается классом XMLDataImport. |
transaction |
Собственно данные. Состоят из набора объектов - строк таблиц. |
Record |
Строка таблицы. Атрибут name содержит имя таблиц в том виде, в каком оно записано в AOT. Атрибут row содержит порядковый номер записи (нумерация идет в пределах одной таблицы)/ |
Field |
Поле таблицы. В атрибуте name записано имя поля в том виде, в каком оно записано в AOT |
Method |
Значение display-метода, вызванного для выгружаемой строки таблицы. В атрибуте name записано имя метода в том виде, в каком оно записано в AOT. Не появляется в стандартном приложении (то есть появляется только после установки модификации). |
Выгруженный менеджером публикаций XML -документ без особого труда может быть загружен в любую другую программу, обрабатывающую данные. Создавая в Axapta необходимые запросы и добавляя display-методы в таблицы, Вы можете добиться выгрузки именно той информации, которая необходима.
Максим Горбунов, maxim@mazzy.ru





