Управление сервисом загрузки справочников на базе Ubuntu 18.04 осуществляется следующим образом:
Для сервиса необходимо вручную создать пустой файл
/etc/default/exchangers-rest-upload
:touch /etc/default/exchangers-rest-upload
Запустить сервис с помощью команд:
systemctl start exchangers-rest-upload
Посмотреть статус сервиса можно командой:
systemctl status exchangers-rest-upload
После старта сервис будет работать даже после перезагрузки.
Настройка обмена через REST
Настройка сервиса обмена REST осуществляется в конфигурационном файле /opt/exchangers/config/cs/exchangers.ini
в секции [REST_UPLOAD]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
port | целочисленный | Целое положительное число | Порт для REST сервиса | По умолчанию 28080 |
authorize | логический |
| Проверять логин и пароль при REST запросе | По умолчанию true |
login | строковый | Логин для авторизации REST запроса | По умолчанию admin | |
passwd | строковый | Пароль для авторизации REST запроса | По умолчанию admin | |
shopCodeIsShopId | логический |
| Проверка являются ли коды магазинов, передаваемые в запросе, идентификаторами магазинов | По умолчанию true |
maxCountBackupRequests | целочисленный | Целое положительное число | Максимальное количество архивов запросов для одного магазина в бэкап директории (устаревшие архивы будут удаляться) | По умолчанию 0 .Если указать значение 0 , то данная настройка учитываться не будет |
actualCountDaysForBackupRequests | целочисленный | Целое положительное число | Количество дней актуальности архивов запросов для одного магазина в бэкап директории (устаревшие архивы будут удаляться) | По умолчанию Если указать значение |
Загрузка справочников
Загрузка справочников по REST протоколу осуществляется посредством запросов на URL:
http://<host кассы>:<порт REST сервиса>/aifexchange/loaddicts?shopcode=<код магазина>&dictionaryid=<идентификатор справочника>&addressstatusserver=<хост:порт>&directload=<прямая загрузка в БД>
В параметрах запроса могут быть переданы следующие данные:
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
addressstatusserver | строковый | Адрес и порт сервиса отслеживания статусов загрузки | Если адрес указан, то на него приходят сообщения от сервисов Если поле не заполнено, то статусы загрузки не отправляются. |
dictionaryid | строковый | Идентификатор справочника | Не является обязательным параметром. Требуется для отслеживания загрузки справочника. Если не указан, то генерируется уникальный внутренний идентификатор. |
shopcode | строковый | Код магазина | |
directload | строковый | Прямая загрузка в БД | Осуществляется прямая загрузка данных в БД, без участия сервиса Параметр является не обязательным. |
Запросы и ответы, передаваемые и получаемые по REST протоколу, представляют собой массив AIF-объектов в формате json
:
[{ "command":"addUnit", "unit":{ "unitCode":796, "name":"шт", "fractional":false } }, { "command":"addDept", "dept":{ "code":2, "name":"ИП Кузнецов С.В.", "documentPrefix":"К" } }, {"command": "clearCard"}, { "command":"addCard", "card":{ "idcard":"7951380000001", "number":"7951380000001", "idcardgroup":1 } } ]
{"success": true, "info": "ОК"} , где success - статус обработки справочника, info - дополнительная информация. В случае ошибки в этом поле будет сообщение об ошибке.
Если настроен сервис отслеживания статусов загрузки, то на него будут приходить ответы:
exchanger status: STATUS_DURING 192.169.10.80 - - [17/Sep/2014 10:11:46] "POST /CSrest/rest/dicts/backOfficeState/111 HTTP/1.1" 200 15 exchanger status: STATUS_READY 192.169.10.80 - - [17/Sep/2014 10:11:56] "PUT /CSrest/rest/dicts/backOfficeState/111/1410923501.03 HTTP/1.1" 200 15 nes status: STATUS_DURING 192.169.10.80 - - [17/Sep/2014 10:12:06] "PUT /CSrest/rest/dicts/cashLoad/111/111/1410923501.03 HTTP/1.1" 200 15 nes status: STATUS_READY 192.169.10.80 - - [17/Sep/2014 10:12:16] "PUT /CSrest/rest/dicts/cashLoad/111/111/1410923501.03 HTTP/1.1" 200 15