Управление сервисом загрузки справочников осуществляется следующим образом:
Для сервиса необходимо вручную создать пустой файл
/etc/default/exchangers-rest-upload:touch /etc/default/exchangers-rest-upload
Запустить сервис с помощью команд:
systemctl start exchangers-rest-upload
Посмотреть статус сервиса можно командой:
systemctl status exchangers-rest-upload
После старта сервис будет работать даже после перезагрузки.
Настройка обмена через REST
Настройка сервиса обмена REST осуществляется в конфигурационном файле /linuxcash/cash/exchangesystems/exchangers/config/cash/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