Загрузка справочников на кассовый сервер производится в несколько этапов:
- Передача справочников из АСТУ в исходную директорию на КС.
- Перенесение справочников из исходной директории в рабочую директорию.
- Конвертирование справочников из исходного формата в AIF.
- Помещение объектов в очередь.
- Загрузка объектов из очереди в базу данных кассового сервера.
Исходная директория для загрузки справочников на КС задается через веб-интерфейс кассового сервера индивидуально для каждого формата обмена.
Загрузка справочников в рабочую директорию кассового сервера осуществляется посредством Exchanger
. Для выполнения загрузки справочников на КС должен быть запущен сервис exchangers-upload
.
Сервис
Exchanger
конвертирует полученные файлы в формат AIF, передает сервису Sync-agent
, который отправляет полученные файлы сервису Sales-loader
. Сервис Sales-loader
помещает файлы в файловую систему. Кассовый сервер извлекает справочники из файловой системы и загружает их в БД.
Включение сервиса обмена через файловую систему
Для начала работы с сервисом необходимо вручную создать пустой файл /etc/default/exchangers-upload
:
touch /etc/default/exchangers-upload
Для запуска сервиса необходимо выполнить команду:
systemctl start exchangers-upload
Для проверки статуса сервиса необходимо выполнить команду:
systemctl status exchangers-upload
Настройка обмена через файловую систему
Настройка сервиса обмена через файловую систему осуществляется в конфигурационном файле /opt/exchangers/config/cs/exchangers.ini
в секции [UPLOAD]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
poolProcessSize | целочисленный | целое положительное число | Количество процессов. | |
timeoutFlagFind | целочисленный | целое положительное число | Период сканирования данных, в секундах. | |
nodeGetter | строковый |
| Модуль для получения нод. Ноды представляет собой совокупность узлов дерева магазинов и групп. |
|
timeoutNodeReread | целочисленный | целое положительное число | Интервал перечитывания нод, по истечении которого будут обновляться все ноды, в секундах. | При перечитывании нод получается дерево групп и магазинов |
maxCountBackupFiles | целочисленный | целое положительное число | Максимальное количество архивов запросов для одного магазина в бэкап директории. | Устаревшие архивы удаляются. При значении 0 настройка не учитывается |
actualCountDaysForBackupFiles | Максимальное количество дней актуальности архивов в директории резервного копирования. | Устаревшие архивы удаляются. При значении 0 настройка не учитывается | ||
stopConvertIfBadDict | логический |
| Останавливать конвертирование для магазина, у которого произошла ошибка при конвертировании справочника:
| |
badDictsDirectory | Директория для сохранения справочников, при обработке которых произошли ошибки. |
[UPLOAD] ; Количество процессов poolProcessSize = 2 ; Период сканирования данных. Задается в секундах timeoutFlagFind = 20 ; Модуль для получения нод nodeGetter = cs30 ; Период перечитывания нод. Задается в секундах timeoutNodeReread = 300 ; Максимальное количество архивов для одного магазина в бэкап директории (устаревшие архивы будут удаляться) ; Если указать значение 0, то данная настройка учитываться не будет maxCountBackupFiles = 30 ; Количество дней актуальности архивов для одного магазина в бэкап директории (устаревшие архивы будут удаляться) ; Если указать значение 0, то данная настройка учитываться не будет actualCountDaysForBackupFiles = 30 ; Останавливать конвертирование для магазина, у которого произошла ошибка при конвертировании справочника stopConvertIfBadDict = True ; Директория для сохранения справочников, при обработке которых произошли ошибки. ; Справочники с ошибками будут перемещаться в указанную директорию только если установлено stopConvertIfBadDict = false. ; Если установлено stopConvertIfBadDict = true, то справочники с ошибками будут оставаться в рабочей директории, пока их не удалят badDictsDirectory = /opt/exchangers/badDicts
Передача в АСТУ статусов загрузки справочников
Для оповещения АСТУ о ходе загрузки через файловую систему реализована возможность передачи в АСТУ статусов загрузки справочников. Для этого необходимо:
Добавить скрытые настройки в конфигурационный файл
opt/artixcs-rest/application.properties
.- Для параметра
core.exchange.dictstatus.send.external.notifies
установить значениеtrue.
Для параметра
core.exchange.dictstatus.host
указать хост.Для параметра
core.exchange.dictstatus.port
указать порт.
Наименование Тип данных Возможные значения Описание Значение по умолчанию core.exchange.dictstatus.send.external.notifies логический - true
- false
Включение отправки статусов прогрузки справочников во внешний сервис (из exchangers-rest-service) false
core.exchange.dictstatus.host строковый Хост для подключения к внешнему сервису, принимающему статусы прогрузки справочников localhost
core.exchange.dictstatus.port целочисленный Порт для подключения к внешнему сервису, принимающему статусы прогрузки справочников 8998
Пример настройкиcore.exchange.dictstatus.send.external.notifies = true core.exchange.dictstatus.host = 111.111.11.111 core.exchange.dictstatus.port = 8998
- Для параметра
Настроить сервис
exchangers-rest-service.
Сервис
exchangers-rest-service
предназначен для формирования файла с обновляемой информацией о статусах загрузки справочника.Файл с информацией о статусах создается в директории, указанной в настройках веб-интерфейса кассового сервера "Директория для сохранения информации о прогрузке справочников" в разделе "Форматы файлового обмена". Для каждого формата обмена директория задается индивидуально.Для начала работы с сервисом
exchangers-rest-service
необходимо вручную создать пустой файл/etc/default/exchangers-rest-service
:touch /etc/default/exchangers-rest-service
Для запуска сервиса необходимо выполнить команду:
systemctl start exchangers-rest-service
Для проверки статуса сервиса необходимо выполнить команду:
systemctl status exchangers-rest-service