Принцип загрузки данных в БИТ.Аппетит — различия между версиями
ASLezhnin (обсуждение | вклад) |
ASLezhnin (обсуждение | вклад) |
||
| (не показано 10 промежуточных версии этого же участника) | |||
| Строка 5: | Строка 5: | ||
Запрос для загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу БИТ.Аппетита по адресу <nowiki>http://hostname:9870/</nowiki><b>xml_load</b>, с содержащимися данными в формате XML. | Запрос для загрузки данных в БИТ.Аппетит представляет из себя отправку POST запроса серверу БИТ.Аппетита по адресу <nowiki>http://hostname:9870/</nowiki><b>xml_load</b>, с содержащимися данными в формате XML. | ||
Сам формат отправки может быть реализован 2 способами. | Сам формат отправки может быть реализован 2 способами. | ||
| − | * POST запрос формируется в режиме <b>multipart/form-data</b>. | + | * POST запрос формируется в режиме <b>multipart/form-data</b>. POST параметр соответствующий XML файлу, должен называться "in_file". |
* POST запрос формируется так что, вся секция параметров содержит одну строку с XML данными. | * POST запрос формируется так что, вся секция параметров содержит одну строку с XML данными. | ||
| Строка 16: | Строка 16: | ||
dateuploading - время отправки запроса | dateuploading - время отправки запроса | ||
code - код обмена организации | code - код обмена организации | ||
| − | org_name - Если атрибут "code" пустой, то поиск целевой организации осуществляется по имени (необязательный параметр) | + | org_name - Если атрибут "code" пустой, то поиск целевой |
| + | организации осуществляется по имени (необязательный параметр) | ||
--> | --> | ||
<back_to_ef dateuploading="2010-10-30 15:00:00" code="123" org_name="Company"> | <back_to_ef dateuploading="2010-10-30 15:00:00" code="123" org_name="Company"> | ||
| Строка 23: | Строка 24: | ||
</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 |
| Параметры |
|
| Пример запроса | 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 |
| Параметры |
|
| Пример запроса | 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> |