Управление сервисом загрузки справочников на базе Ubuntu 18.04 осуществляется следующим образом:

  1. Для сервиса необходимо вручную создать пустой файл /etc/default/exchangers-rest-upload:

    touch /etc/default/exchangers-rest-upload
  2. Запустить сервис с помощью команд:

    systemctl start exchangers-rest-upload
  3.  Посмотреть статус сервиса можно командой:

    systemctl status exchangers-rest-upload

    После старта сервис будет работать даже после перезагрузки.

Настройка обмена через REST

Настройка сервиса обмена REST осуществляется в конфигурационном файле /linuxcash/cash/exchangesystems/exchangers/config/cash/exchangers.ini в секции [REST_UPLOAD].

НаименованиеТип данныхВозможные значенияОписаниеПримечания
portцелочисленныйЦелое положительное числоПорт для REST сервисаПо умолчанию 28080
authorizeлогический
  • true
  • false

Проверять логин и пароль при REST запросе

По умолчанию true
loginстроковый
Логин для авторизации REST запросаПо умолчанию admin
passwdстроковый
Пароль для авторизации REST запросаПо умолчанию admin
shopCodeIsShopIdлогический
  • true
  • false
Проверка являются ли коды магазинов, передаваемые в запросе, идентификаторами магазиновПо умолчанию true
maxCountBackupRequestsцелочисленныйЦелое положительное числоМаксимальное количество архивов запросов для одного магазина в бэкап директории (устаревшие архивы будут удаляться)По умолчанию 0.
Если указать значение 0, то данная настройка учитываться не будет
actualCountDaysForBackupRequestsцелочисленныйЦелое положительное числоКоличество дней актуальности архивов запросов для одного магазина в бэкап директории (устаревшие архивы будут удаляться)

По умолчанию 3.

Если указать значение 0, то данная настройка учитываться не будет

Загрузка справочников

Загрузка справочников по REST протоколу осуществляется посредством запросов на URL:

http://<host кассы>:<порт REST сервиса>/aifexchange/loaddicts?shopcode=<код магазина>&dictionaryid=<идентификатор справочника>&addressstatusserver=<хост:порт>&directload=<прямая загрузка в БД>

В параметрах запроса могут быть переданы следующие данные:

Наименование

Тип данных

Описание

Примечания

addressstatusserverстроковыйАдрес и порт сервиса отслеживания статусов загрузки

Если адрес указан, то на него приходят сообщения от сервисов Exchanger и Nes.

Если поле не заполнено, то статусы загрузки не отправляются.

dictionaryidстроковыйИдентификатор справочника

Не является обязательным параметром. Требуется для отслеживания загрузки справочника.

Если не указан, то генерируется уникальный внутренний идентификатор.

shopcodeстроковыйКод магазина


directloadстроковыйПрямая загрузка в БД

Осуществляется прямая загрузка данных в БД, без участия сервиса nes.

Параметр является не обязательным.

Запросы и ответы, передаваемые и получаемые по 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
  • No labels