Назначение:
Функция предназначена для преобразования данных из формата системы DIRECTUM в формат внешней системы и выполнения загрузки данных во внешнюю систему.
Входные параметры:
• | IntegratedSystemCode – строка, код интегрированной системы из справочника Интегрированные системы; |
• | XMLDocument – вариантный, ссылка на объект типа MSXML.DOMDocument, в котором содержатся данные, выгруженные из системы DIRECTUM; |
• | HiddenMode – логический, скрытый режим. |
Возвращаемое значение:
Имя файла с данными, которые были приняты в интегрированную систему.
Схема процесса:
Описание:
Данная функция используется для выполнения преобразования данных, выгруженных из системы 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-документа после формирования>. Код, в котором может выполняться произвольная обработка сформированного документа (выполняться проверка правильности формата, разрешение ссылок на записи справочников и т.д.).
<Имя выходного файла с данными>. Имя файла, в который помещаются данные, преобразованные к формату внешней системы.
<Код загрузки данных во внешнюю систему>. Код, предназначенный для загрузки данных во внешнюю систему из файла.
© 2016 Компания DIRECTUM | Сообщество пользователей DIRECTUM |