Назначение:
Конвертирует данные из формата системы DIRECTUM в формат внешней системы и выполняет загрузку данных во внешнюю систему.
Входные параметры:
• | IntegratedSystemCode – строка, код интегрированной системы из справочника Интегрированные системы; |
• | XMLDocument – вариантный, ссылка на объект типа MSXML.DOMDocument, в котором содержатся данные, выгруженные из системы DIRECTUM; |
• | HiddenMode – логический, скрытый режим. |
Примечание
Для коннекторов, которые не используют стандартный механизм загрузки/выгрузки данных с применением XSL-преобразования, состав параметров отличается:
- IntegratedSystemCode – строка, код интегрированной системы из справочника Интегрированные системы;
- HiddenMode – логический, скрытый режим;
- ExchangeSettingsCode – строка, код настройки обмена данными из справочника Настройки обмена данными с интегрированными системами;
- Mode – строка, режим выгрузки данных из системы. Возможные значение: Batch (обмен данными в пакетном режиме), Online (обмен данными в online-режиме);
- RecordID – строка, ИД записи справочника (в online-режиме);
- Action – строка, действие над записью справочника (в online-режиме).
Возвращаемое значение:
Имя файла с данными, которые были приняты в интегрированную систему.
Схема процесса:
Описание:
Данная функция используется для выполнения преобразования данных, выгруженных из системы DIRECTUM, к формату данных внешней системы выгрузки данных из внешней системы и преобразования их к формату DIRECTUM. Данная функция может быть реализована различными способами, т.к. различные системы могут предоставлять различные возможности интеграции.
Формат XML-документа, который должен быть передан в параметре XMLDocument, соответствует формату данных, в котором формируется возвращаемое значение функции Connector<Код типа системы>ExportDataFromIntegratedSystem.
Шаблон текста функции (один из возможных вариантов реализации с преобразованием):
// Преобразовать документ с данными в формат внешней системы.
DESTINATION_SYSTEM_TYPE_CODE = "D"
REQUISITES_SETTINGS_DETAIL_DATASET_INDEX = 1
IntegrationSettingsReference = References.IntegratedSystemsDataExchangeSettings.GetComponent()
IntegratedSystem = References.IntegratedSystems.GetObjectByCode(IntegratedSystemCode)
IntegratedSystemID = IntegratedSystem.SYSREQ_ID
AddWhere = Format("%0:s.%1:s = %2:s and %0:s.%3:s = '%4:s'";
ArrayOf(IntegrationSettingsReference.TableName;
IntegrationSettingsReference.Requisites("IntegratedSystem").SQLFieldName; IntegratedSystemID;
IntegrationSettingsReference.Requisites("IntegratedSystemType").SQLFieldName; DESTINATION_SYSTEM_TYPE_CODE))
AddWhereID = IntegrationSettingsReference.AddWhere(AddWhere)
IntegrationSettingsReference.Open()
if not HiddenMode
Progress = CreateProgress(; IntegrationSettingsReference.RecordCount + 2; FALSE)
Progress.Show
endif
XSLStylesheet = CreateObject("MSXML.DOMDocument")
Dest = CreateObject("MSXML.DOMDocument")
Temp = CreateObject("MSXML.DOMDocument")
foreach IntegrationSetting in IntegrationSettingsReference
IntegrationSetting.OpenRecord()
// Получить XSL для импорта.
XSLStylesheet.loadXML(IntegrationSetting.Requisites("Текст").AsString)
// Преобразовать исходную XML по схеме.
Temp.loadXML(XMLDocument.transformNode(XSLStylesheet))
<Код формирования выходного XML-документа>
if not HiddenMode
Progress.Next
endif
endforeach
IntegrationSettingsReference.Close()
IntegrationSettingsReference.DelWhere(AddWhereID)
// Выполнить обработку сформированного XML-документа.
<Код обработки XML-документа после формирования>
// Определить имя выходного файла и сохранить его.
FullFileName = <Имя выходного файла с данными>
// Сохранить выходной файл.
Dest.save(FullFileName)
// В результат поместить имя сформированного файла.
Result = FullFileName
if not HiddenMode
Progress.Next
endif
// Инициировать процесс приема данных во внешнюю систему.
<Код загрузки данных во внешнюю систему>
if not HiddenMode
Progress.Next
Progress.Hide
endif
<Код формирования выходного XML-документа>. Код, в котором формируется выходной XML-документ. После преобразования данные должны попасть в документ, ссылка на который хранится в переменной Dest. Данные, преобразованные по одной настройке обмена данными, хранятся в документе, ссылка на который находится в переменной Temp. Формирование документа Dest должно определяться для каждого типа систем, т.к. формат файла данных может различаться.
<Код обработки XML-документа после формирования>. Код, в котором может выполняться произвольная обработка сформированного документа (выполняться проверка правильности формата, разрешение ссылок на записи справочников и т.д.).
<Имя выходного файла с данными>. Имя файла, в который помещаются данные, преобразованные к формату внешней системы.
<Код загрузки данных во внешнюю систему>. Код, предназначенный для загрузки данных во внешнюю систему из файла.
Примечание
Описание функции актуально для коннекторов, которые используют стандартный механизм загрузки/выгрузки данных с применением XSL-преобразования. Если в компании разработан собственный коннектор, то текст функции может быть произвольным. Возможность использования стандартного механизма задается в параметре функции ...GetInfo.
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |