Публичное пространство
Логика импорта карт из ERP и настройка
Настройка импорта
В SetRetail реализованы 2 протокола импорта карт из ERP:
Файловый транспорт;
Web-сервис.
Настройка импорта через веб-сервис
Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация.
1. Перейдите в Интеграция → Импорт/Экспорт → кликните .
2. Установите флажок Протокол Set Retail 10: веб-сервисы → кликните .
Перезапустите службу сервера JBOSS:
Windows:
net stop JBOSS_SVCnet start JBOSS_SVC
Linux:
service JBOSS_SVC restart
Настройка файлового импорта
Формат импорта описан в разделе в разделе Интеграционная документация.
1. Перейдите в Интеграция → Импорт/Экспорт → кликните .
2. Установите флажок Протокол Set Retail 10: файлы → кликните.
4. Установите путь импорта → кликните .
Обратная связь при импорте данных
Начиная с версии SetRetail 10.2.5.0 существует возможность получать обратную связь от сервера приложений о статусе импортируемых данных.
Подробнее в статье Обратная связь о импорте данных.
Алгоритм импорта
Проверка импортируемых данных
Файлы с картами попадают в папку импорта (по-умолчанию \cards\source).
Cервер приложений перемещает файл в папку \cards\tmp и проводит валидацию файла на корректность (спец.символы, тэги и т.п.)
Корректные файлы попадают \cards\success. Если валидация прошла не успешно то в \cards\error.
После успешной валидации и загрузки, файлы переходят в обработку следующего шага технического процесса.
Сохранение справочника карт на сервере
Первым этапом данные справочника карт поступают в таблицу erp_import_cards_catalog для обработки и дальнейшей передачи в модуль Карты.
Основные поля таблицы:
Поле | Назначение |
destination_queue | Адресат - куда надо отправить это сообщение |
sent_to_cards | Флаг-признак: сообщение уже отправлено (в модуль карты) |
status | Статус сообщения |
arrive_date | Дата создания этого сообщения |
sourcefilename | Имя xml-файла источника данных |
Скрипты для анализа:
Количество записей
select count(1) from erp_import_cards_catalogКакие данные за какое время обрабатывает сервер
Select whenloaded from erp_import_cards_catalog where status=0 order by arrive_dateДанный скрипт проверки статус = 3 означает, что XML не прошел внутреннюю проверку и отклонен.
Удалите все записи в таблице → перезапустите службу сервера SetRetail10 → попробовать загрузить карты еще раз. В случае повторного попадания в 3 тип поищите проблему в лог-файлах и XML.
select count(1) from erp_import_cards_catalog where status=3
Важно!
Ошибки, возникающие при импорте данных можно проследить в логе {inst dir}\SetRetail10\standalone\log\set-cards.log предварительно расширив уровень логирования по инструкции Настройка логирования сервера приложений
В случае прохождения валидации карт происходит в дальнейший шаг техничкского процесса.
В обратном случае карта попадает на «Полку отклоненных карт» (таблица card_rejected_cards)
Подробное описание справочника карт опубликовано в статье SetRetail10 ◾️ Дисконтные карты.
Создание очереди для отправки на кассу
Следующий шагом:
Создаются очереди на отправку.
Новые карты попадают в таблицу card_not_received_to_cash → "собираются" в "пачки" (задания) для отправки на конкретную кассу (1 задание - не более 100 карт параметр настраиваемый), которые хранятся в директории {inst dir}\SetRetail10\nginx\html\card. За отправку файлов отвечает веб-сервер nginx(служба nginx устанавливается с сервером приложений, запускатя вместе с сервером SetRetail10).
При использовании топологии SetCentrum ↔ SetRetail ↔ POS. Сервер SetCentrum готовит задания справочника карт для магазинов → задания сохраняются в таблице un_cg_product_file_for_shops:
Основные поля таблицы:
Поле | Назначение |
|---|---|
shop_number | Номер магазина, для которого предназначен указанный файл. Если NULL -> все магазины |
file_name | Имя файла в nginx |
import_date | Дата записи данных в файл |
objects_count | Количество объектов/сущностей, записанных в этот файл |
object_type | Тип данных |