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

Материал из Wiki
Перейти к: навигация, поиск
(Новая страница: «Процесс загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу…»)
 
 
(не показано 12 промежуточных версии этого же участника)
Строка 1: Строка 1:
Процесс загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу БИТ.Аппетита по адресу <nowiki>http://hostname:9870/</nowiki><b>xml_load</b>, с содержащимися данными в формате XML.  
+
Процесс загрузки данных в БИТ.Аппетит представляет из себя отправку запроса с данными в формате XML, которая инициирует транзакцию загрузки. Сама транзакция загрузки может происходит длительное время, поэтому происходит не в контексте запроса, а в фоновом потоке.
 +
Для индикации процесса загрузки сервер предоставляет ряд служебных методов, которые будут описаны далее.
 +
 
 +
== Правила формирования запроса к серверу БИТ.Аппетит ==
 +
Запрос для загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу БИТ.Аппетита по адресу <nowiki>http://hostname:9870/</nowiki><b>xml_load</b>, с содержащимися данными в формате XML.  
 
Сам формат отправки может быть реализован 2 способами.
 
Сам формат отправки может быть реализован 2 способами.
* POST запрос формируется в режиме <b>multipart/form-data</b>. Имя POST параметра соответствующему XML файлу, должно называться "in_file".
+
* POST запрос формируется в режиме <b>multipart/form-data</b>. POST параметр соответствующий XML файлу, должен называться "in_file".
* POST запрос, где секция параметров содержим строку с XML данными.
+
* POST запрос формируется так что, вся секция параметров содержит одну строку с XML данными.
  
 
----
 
----
Строка 8: Строка 12:
  
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="windows-1251"?>
+
<?xml version="1.0" encoding="utf-8"?>
<back_to_ef dateuploading="2010-10-30 15:00:00" org_name="Company">
+
<!--
 
+
  dateuploading - время отправки запроса
 +
  code - код обмена организации
 +
  org_name - Если атрибут "code" пустой, то поиск целевой
 +
            организации осуществляется по имени (необязательный параметр)
 +
-->
 +
<back_to_ef dateuploading="2010-10-30 15:00:00" code="123" org_name="Company">
 
   ... XML узлы.
 
   ... XML узлы.
 
</back_to_ef>
 
</back_to_ef>
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
В случае успешной регистрации транзакции сервер выдает ответ, где содержится ID транзакции.
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<syntaxhighlight lang="xml">
 +
<response>
 +
  <result>OK</result>
 +
  <!-- Элемент "id" содержит уникальный код транзакции -->
 +
  <id>3232</id>
 +
</response>
 +
</syntaxhighlight>
 +
 +
 +
== Отслеживание статуса транзакции загрузки данных в БИТ.Аппетит ==
 +
Для отслеживания статуса транзакции предназначены следующие запросы.
 +
Запрос информирует о ходе выполнения транзакции. Сервер выдает процент от выполненной транзакции.
 +
{|class="wikitable"
 +
|Страница
 +
|<b>xml_trans_status</b>
 +
|-
 +
|Параметры
 +
|
 +
* id - ID транзакции
 +
|-
 +
|Пример запроса
 +
|<nowiki>http://hostname:9870/</nowiki><b>xml_trans_status</b>?id=1231
 +
|-
 +
|Пример ответа<br>в случае успеха
 +
|<syntaxhighlight lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<response>
 +
  <result>OK</result>
 +
  <!-- Процент ходы выполнения транзакции.
 +
      При значении 100 задача считается выполненной.
 +
    -->
 +
  <percent>95</percent>
 +
  <!-- Количество предупреждений для данной транзакции.
 +
      Предупреждение - это некритическая ошибка не приводящая к откату транзакции.
 +
      Если значение "warnings" больше 0, то необходимо уведомить пользователя,
 +
      с использованием запроса /xml_trans_warnings
 +
    -->
 +
  <warnings>2</warnings>
 +
 +
  <!-- Номер транзакции в очереди на обработку -->
 +
  <queue_num>0</queue_num>
 +
 
 +
  <!-- Для завершенных транзакций добавляются 2 узла.
 +
      Дата/Время начала и завершения загрузки транзакций в формате YYYY-MM-DD HH-NN-SS (ISO)
 +
    -->
 +
  <start_datetime>2015-10-10 10:00:00</start_datetime>
 +
  <finish_datetime>2015-10-10 10:00:10</finish_datetime> 
 +
</response>
 +
</syntaxhighlight>
 +
|-
 +
|Пример ответа<br>в случае ошибки
 +
|<syntaxhighlight lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<response>
 +
  <result>ERROR</result>
 +
  <!-- В случае критической ошибки выдается сообщение об ошибке,
 +
      а транзакция откатывается (rollback).
 +
  -->
 +
  <description>Описание ошибки</description>
 +
</response>
 +
</syntaxhighlight>
 +
|}
 +
 +
Для вывода детальной информации по предупреждениям транзакции предназначен следующий запрос.
 +
{|class="wikitable"
 +
|Страница
 +
|<b>xml_trans_warnings</b>
 +
|-
 +
|Параметры
 +
|
 +
* id - ID транзакции
 +
|-
 +
|Пример запроса
 +
|<nowiki>http://hostname:9870/</nowiki><b>xml_trans_warnings</b>?id=1231
 +
|-
 +
|Пример ответа
 +
|<syntaxhighlight lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<response>
 +
  <result>OK</result>
 +
  <!-- Элемент "warning" - предупреждение об ошибке.
 +
      barcode - код связанной номенклатуры (необязательный атрибут)
 +
      description - описание предупреждения
 +
    -->
 +
  <warning barcode="123123" description="Описание"/>
 +
  <warning barcode="2222" description="Описание"/>
 +
</response>
 +
</syntaxhighlight>
 +
 +
|}

Текущая версия на 16:33, 27 октября 2015

Процесс загрузки данных в БИТ.Аппетит представляет из себя отправку запроса с данными в формате 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>


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

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

Страница xml_trans_status
Параметры
  • id - ID транзакции
Пример запроса http://hostname:9870/xml_trans_status?id=1231
Пример ответа
в случае успеха
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result>OK</result>
  <!-- Процент ходы выполнения транзакции.
       При значении 100 задача считается выполненной.
    -->
  <percent>95</percent>
  <!-- Количество предупреждений для данной транзакции. 
       Предупреждение - это некритическая ошибка не приводящая к откату транзакции.
       Если значение "warnings" больше 0, то необходимо уведомить пользователя, 
       с использованием запроса /xml_trans_warnings
    -->
  <warnings>2</warnings>
 
  <!-- Номер транзакции в очереди на обработку -->
  <queue_num>0</queue_num>
 
  <!-- Для завершенных транзакций добавляются 2 узла. 
       Дата/Время начала и завершения загрузки транзакций в формате YYYY-MM-DD HH-NN-SS (ISO)
    -->
  <start_datetime>2015-10-10 10:00:00</start_datetime>
  <finish_datetime>2015-10-10 10:00:10</finish_datetime>   
</response>
Пример ответа
в случае ошибки
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result>ERROR</result>
  <!-- В случае критической ошибки выдается сообщение об ошибке, 
       а транзакция откатывается (rollback). 
   -->
  <description>Описание ошибки</description>
</response>

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

Страница xml_trans_warnings
Параметры
  • id - ID транзакции
Пример запроса http://hostname:9870/xml_trans_warnings?id=1231
Пример ответа
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result>OK</result>
  <!-- Элемент "warning" - предупреждение об ошибке.
       barcode - код связанной номенклатуры (необязательный атрибут) 
       description - описание предупреждения
    -->
  <warning barcode="123123" description="Описание"/>
  <warning barcode="2222" description="Описание"/>
</response>