Публичное пространство
Логика импорта карт из ERP и настройка
Настройка импорта
В SetRetail реализованы 2 протокола импорта карт из ERP:
- Файловый транспорт;
- Web-сервис.
Настройка импорта через веб-сервис
Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация.
1. Перейдите в Интеграция → Импорт/Экспорт → кликните .
2. Установите флажок → кликните . Протокол Set Retail 10: веб-сервисы
Перезапустите службу сервера JBOSS:
- Windows:
net stop JBOSS_SVC
net start JBOSS_SVC
- Linux:
service JBOSS_SVC restart
Настройка файлового импорта
Формат импорта описан в разделе в разделе Интеграционная документация.
1. Перейдите в Интеграция → Импорт/Экспорт → кликните .
2. Установите флажок Протокол Set Retail 10: файлы → кликните .
4. Установите путь импорта → кликните .
Обратная связь при импорте данных
Начиная с версии SetRetail 10.2.5.0 существует возможность получать обратную связь от сервера приложений о статусе импортируемых данных.
Подробнее в статье /wiki/spaces/SR10SUPPORT/pages/468123676.
Алгоритм импорта
Проверка импортируемых данных
- Файлы с картами попадают в папку импорта (по-умолчанию \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 | Тип данных |
Основные поля таблицы
cards_file_for_cashes:Поле | Назначение |
cash_number | Номер кассы, для которой предназначенуказанный файл. Если NULL - все кассы |
shop_number | Номер магазина, в котором эта кассазарегистрирована |
file_name | Имя файла в nginx |
import_date | Дата записи данных в файл |
objects_count | Количество объектов/сущностей, записанных вэтот файл |
ВАЖНО!
Ошибки обработки карт кассой можно проследить в лог-файле на кассе \\IP кассы\storage\crystal-cash\logs\cards.log предварительно, расширив уровень логирования по инструкции Настройка логирования кассовой программы
- Процесс их отправки экземпляров заданий можно проследить в визуализации или в таблице cards_cash_activity.
- При нажатии в кассовом модуле на кнопку Новая касса в очереди на сервере формируется аналогично:file_transfer_cards* card_not_received_to_cash →
- После загрузки файла кассовым модулем модуль Карты начинает его обработку → после разбора файла и сохранения данных справочника карт, идентификатор обработанного файла обновляет запись в таблице база данных кассы cards cards → cards_lastcardid.
- Когда касса загрузила задания с картами, далее задания в таблице un_cg_product_file_for_cashes удаляются, аналогично файлам в директории {inst dir}\SetRetail10\nginx\html\cards
© 1994-2024, ООО «Кристалл Сервис Интеграция».
Все права защищены..