Публичное пространство

Логика импорта карт из 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.

Алгоритм импорта

Проверка импортируемых данных

  1. Файлы с картами попадают в папку импорта (по-умолчанию \cards\source).
  2. Cервер приложений перемещает файл в папку \cards\tmp и проводит валидацию файла на корректность (спец.символы, тэги и т.п.)
  3. Корректные файлы попадают \cards\success. Если валидация прошла не успешно то в \cards\error.
  4. После успешной валидации и загрузки, файлы переходят в обработку следующего шага технического процесса.

Сохранение справочника карт на сервере

Первым этапом данные справочника карт поступают в таблицу 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 ◾️ Дисконтные карты.

Создание очереди для отправки на кассу

Следующий шагом:

  1. Создаются очереди на отправку.
  2. Новые карты попадают в таблицу card_not_received_to_cash → "собираются" в "пачки" (задания) для отправки на конкретную кассу (1 задание - не более 100 карт параметр  настраиваемый), которые хранятся в директории {inst dir}\SetRetail10\nginx\html\card. За отправку файлов отвечает веб-сервер nginx(служба nginx устанавливается с сервером приложений, запускатя вместе с сервером SetRetail10).
  3. При использовании топологии 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 предварительно, расширив уровень логирования по инструкции Настройка логирования кассовой программы

  1. Процесс их отправки экземпляров заданий можно проследить в визуализации или в таблице cards_cash_activity.
  2. При нажатии в кассовом модуле на кнопку Новая касса в очереди на сервере формируется аналогично:card_not_received_to_cash → file_transfer_cards*
  3. После загрузки файла кассовым модулем модуль Карты начинает его обработку → после разбора файла и сохранения данных справочника карт, идентификатор обработанного файла обновляет запись в таблице база данных кассы cardscards → cards_lastcardid.
  4. Когда касса загрузила задания с картами, далее задания в таблице un_cg_product_file_for_cashes удаляются, аналогично файлам в директории {inst dir}\SetRetail10\nginx\html\cards

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных