Модификация прикладной системы

 

Разработка коннекторов к внешним системам

 

…ImportDataToIntegratedSystem

Назначение:

Преобразование данных из формата системы DIRECTUM в формат внешней системы и выполнения загрузки данных во внешнюю систему.

Входные параметры:

IntegratedSystemCode – строка, код интегрированной системы из справочника Интегрированные системы.

XMLDocument – вариантный, ссылка на объект типа "MSXML.DOMDocument", в котором содержатся данные, выгруженные из системы DIRECTUM.

HiddenMode – логический, cкрытый режим.

Возвращаемое значение:

Имя файла с данными, которые были приняты в интегрированную систему.

Схема процесса:

 

Описание:

Данная функция используется для выполнения преобразования данных, выгруженных из системы 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 документа после формирования> - код, в котором может выполняться произвольная обработка сформированного документа (выполняться проверка правильности формата, разрешение ссылок на записи справочников и т.д.)

·         <Имя выходного файла с данными> - имя файла, в который помещаются данные, преобразованные к формату внешней системы;

·         <Код загрузки данных во внешнюю систему> - код, предназначенный для загрузки данных во внешнюю систему из файла.

 

 

См. также:

·         …GetSystemType;

·         …GetRequiredParamList;

·         …GetDataExchangeSettingRequiredParamList;

·         …GetReferenceList;

·         …GetSectionList;

·         …GetRequisiteList;

·         …GenereteExportXSLText;

·         …GenereteImportXSLText;

·         …ExportDataFromIntegratedSystem;

·         …ShowObjectForm;

·         …FindObject;

·         …GetObjectTypeList;

·         …GetInfo;

·         …GetEditCalculationText.