Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Назначение:

Конвертирует данные из формата системы 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
.navbar > a:hover { background: #FFD73B; }