Принцип загрузки данных в БИТ.Аппетит — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
Строка 49: Строка 49:
 
|<nowiki>http://hostname:9870/</nowiki><b>trans_status</b>?id=1231
 
|<nowiki>http://hostname:9870/</nowiki><b>trans_status</b>?id=1231
 
|-
 
|-
|Пример ответа
+
|Пример ответа в случае успеха
 
|<syntaxhighlight lang="xml">
 
|<syntaxhighlight lang="xml">
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
Строка 64: Строка 64:
 
</response>
 
</response>
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
+
|-
 
+
|Пример ответа в случае ошибки
В случае критической ошибки выдается сообщение об ошибке, а транзакция откатывается (rollback).
+
|<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
+
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<response>
 
<response>
 
   <result>ERROR</result>
 
   <result>ERROR</result>
 +
  <!-- В случае критической ошибки выдается сообщение об ошибке,
 +
      а транзакция откатывается (rollback).
 +
  -->
 
   <description>Описание ошибки</description>
 
   <description>Описание ошибки</description>
 
</response>
 
</response>
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}

Версия 21:40, 8 сентября 2014

Процесс загрузки данных в БИТ.Аппетит представляет из себя отправку запроса с данными в формате XML, которая инициирует транзакцию загрузки. Сама транзакция загрузки может происходит длительное время, поэтому происходит не в контексте запроса, а в фоновом потоке. Для индикации процесса загрузки сервер предоставляет ряд служебных методов, которые будут описаны далее.

Правила формирования запроса к серверу БИТ.Аппетит

Запрос для загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу БИТ.Аппетита по адресу http://hostname:9870/xml_load, с содержащимися данными в формате XML. Сам формат отправки может быть реализован 2 способами.

  • POST запрос формируется в режиме multipart/form-data. POST параметр соответствующий XML файлу, должен называться "in_file".
  • POST запрос формируется так что, вся секция параметров содержит одну строку с XML данными.

Общий формат XML данных содержащихся в запросе, должен соответствовать следующему шаблону.

<?xml version="1.0" encoding="utf-8"?>
<!-- 
  dateuploading - время отправки запроса
  code - код обмена организации
  org_name - Если атрибут "code" пустой, то поиск целевой 
             организации осуществляется по имени (необязательный параметр)
-->
<back_to_ef dateuploading="2010-10-30 15:00:00" code="123" org_name="Company">
   ... XML узлы.
</back_to_ef>

В случае успешной регистрации транзакции сервер выдает ответ, где содержится ID транзакции. <?xml version="1.0" encoding="UTF-8"?>

<response>
  <result>OK</result>
   <!-- Элемент "id" содержит уникальный код транзакции -->
  <id>3232</id>
</response>


Отслеживание статуса транзакции загрузки данных в БИТ.Аппетит

Для отслеживания статуса транзакции предназначены следующие запросы. Запрос информирует о ходе выполнения транзакции. Сервер выдает процент от выполненной транзакции.

Страница trans_status
Параметры
  • id - ID транзакции
Пример запроса http://hostname:9870/trans_status?id=1231
Пример ответа в случае успеха
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result>OK</result>
  <!-- Процент ходы выполнения транзакции.
       При значении 100 задача считается выполненной.
    -->
  <percent>95</percent>
  <!-- Количество предупреждений для данной транзакции. 
       Предупреждение - это некритическая ошибка не приводящая к откату транзакции.
    -->
  <warnings>2</warnings>
</response>
Пример ответа в случае ошибки
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result>ERROR</result>
  <!-- В случае критической ошибки выдается сообщение об ошибке, 
       а транзакция откатывается (rollback). 
   -->
  <description>Описание ошибки</description>
</response>