Копировать ссылку на страницу

Назначение:

Функция предназначена для преобразования данных из формата системы 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