Для обновления справочников из XML-файлов можно использовать алгоритм TXMLAlgorithm. Для настройки алгоритма необходимо задать следующие опции (рис. 4.9):
·Ключевые поля таблицы (в файле) – задает поля маппинга для справочника. Название ключевых полей должно совпадать с физическими полями в результирующем sql-запросе, задаваемом в скрипте SQL.
Если первичный ключ состоит из нескольких полей, то они перечисляются через запятую.
Если ключевые поля таблицы не заданы, то утилита GuaService произведет простую вставку записей из XML-файла в целевую таблицу SQL-базы;
·SQL – SQL-скрипт, который формирует результирующую выборку при преобразовании XML в SQL. На входе скрипта доступна переменная :XML_TEXT, в которой находится содержимое XML-файла. Данный XML-документ необходимо передать на SQL-сервер и разобрать его (см. пример ниже).
По умолчанию в скрипте содержится шаблон обработчика произвольного XML-документа, который необходимо донастроить для формирования корректной результирующей выборки.
·SQL команда (выполняющаяся до загрузки данных) – SQL-скрипт, который выполняется до переноса данных в целевую таблицу SQL-базы;
·SQL команда (выполняющаяся при завершении загрузки) – SQL-скрипт, который выполняется после обновления целевой таблицы импорта;
·Имя исходной таблицы (файла) – физическое имя XML-файла (указывается с расширением).
Если обновление производится не из архива, то имя файла должно совпадать с именем (без указания полного пути) файла в Remote File Path, указываемого на уровне настроек элемента обновления;
·Имя таблицы в базе данных Медиалог – физическое название целевой таблицы импорта в базе данных на SQL сервере.
Рисунок 4.9. Параметры алгоритма TXMLAlgorithm
Для соотнесения полей в XML-файле и целевой таблице SQL-базы необходимо перейти в папку Соответствие полей (рис. 4.8).
Для добавления новой пары соотнесенных полей, необходимо нажать кнопку, выделенную на рис. 4.8. В появившемся диалоговом окне необходимо ввести физическое имя поля в результирующем запросе скрипта «SQL», нажать ОК и в добавленной строке сопоставления в качестве значения Value ввести физическое имя поля в целевой таблице импорта.
Для удаления строки сопоставления полей необходимо нажать кнопку справа от кнопки добавления.
См. также: Пример: разбор XML-файла на SQL сервере