Логика импорта карт из ERP и настройка

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

Логика импорта карт из 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 существует возможность получать обратную связь от сервера приложений о статусе импортируемых данных.

Подробнее в статье Обратная связь о импорте данных.

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

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

  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

Тип данных