Публичное пространство
Логика импорта товаров из ERP и настройка
Настройка импорта
В SetRetail реализованы 2 протокола импорта товаров из ERP:
- Файловый транспорт
- Web-сервис
Настройка импорта через веб-сервис
- Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация.
- В SetRetail с настроенным протоколом импорта через веб-сервис, есть возможность Сохранять xml-копии загружаемых данных.
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: файлы → кликните .
3. Кликните по протоколу импорта Протокол Set Retail 10: файлы.
4. Установите путь импорта → кликните .
Алгоритм импорта
Проверка импортируемых данных товарного справочника
Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация.
- Файлы с товарами попадают в папку импорта (по-умолчанию \products\source).
- Cервер приложений перемещает файл в папку\products\tmp и проводит валидацию файла на корректность (специальные символы, теги).
- Корректные файлы попадают \products\success. Если валидация прошла не успешно то в файл помещается \products\error.
- Если часть файла валидна? а часть нет, то он разобьется и? соответственно часть его пройдет дальше, а часть отклонится.
- При импорте товаров через web-сервис, отклонение товаров можно отследить по лог-файлам.
- После успешной валидации и загрузки, файлы переходят в обработку следующего шага товарного техпроцесса.
Сохранение товарного справочника на сервере
Первым этапом данные товарного справочника поступают в базу данных set → таблицу erpi_goodscatalog для обработки и дальнейшей передачи в модуль «Товары».
Ключевые поля таблицы erpi_goodscatalog:
Поле | Назначение |
destinationqueue | Адресат - куда надо отправить это сообщение |
sendedtosetproducts | Флаг-признак: это сообщение уже отправлено (в модуль товары) |
status | Статус сообщения |
whenloaded | Дата создания этого сообщения |
sourcefilename | Имя xml-файла источника данных |
Скрипты для анализа
select count(1) from erpi_goodscatalog
select whenloaded from erpi_goodscatalog where status=0 order by whenloaded
select count(1) from erpi_goodscatalog where status=3
Следует удалить все записи в таблице, перезапустить службу и попробовать загрузить товар еще раз. В случае повторного попадания в 3 тип искать проблему в логах и XML.
ВАЖНО!
Ошибки, возникающие при импорте данных можно проследить в логе {inst dir}\SetRetail10\standalone\log\set-retailx-erpi.log предварительно расширив уровень логирования по инструкции Настройка логирования сервера приложений
Вторым этапом следует проверка товаров на целостность.
При проверке валидности обязательными являются следующие проверки:
- Наличие кода товара
- Наличие наименования товара
- Наличие в системе плагина товара данного типа
- Наличие у товара хотя бы одной первой ненулевой цены с незаконченным сроком действия
- Наличие штрихового кода
- Наличие ставки НДС
Пользователь может дополнительно включить или выключить следующие проверки:
- Наличие штрихового кода
В случае прохождения валидации товар проходит в дальнейший шаг техпроцесса. В обратном случае товар попадает на «Полку отклоненных товаров» (статус на товарных полках является тупиковой, алгоритмов выхода товара с нее не предусмотрено). Товары, которые оказались на «Полке отклоненных товаров» хранятся в таблице un_cg_rejected_product
ВАЖНО!
Необходимо обеспечить механизм автоматической периодической чистки данной полки, согласно графику, заданному пользователем в конфигурационном файле {Disk}:\SetRetail10\standalone\configuration\modules\products\products.properties параметру rejected.products.clean.time
(по-умолчанию, установлен параметр 05\:30\:00
).
Успешно проверенные товары сохраняются в таблицах:
- un_cg _product - товарный справочник
- un_cg_barcode - список штрихкодов
- un_cg_price - цены
- un_cg_group - группы товаров
- un_cg_department - отделы для цен
Создание очереди для отправки на кассу
Дальнейшим шагом является создание очереди на отправку.
Новые товары попадают в таблицу un_cg_not_received_to_cash_product → Далее товары "собираются" в "пачки" (задания) для отправки на кассs (1 задание - не более 100 товаров. Параметр настраиваемый ), которые хранятся в директории {inst dir}\SetRetail10\nginx\html\products.
За отправку файлов отвечает веб-сервер nginx (служба nginx устанавливается вместе с сервером приложений, по-умолчанию запускается автоматически ) .
При использовании топологии SetCentrum - SetRetail - POS. SetCentrum готовит задания товарного справочника для магазинов.
Задания сохраняются в таблице un_cg_product_file_for_shops
Основные поля:
Поле | Назначение |
shop_number | Номер магазина, для которого предназначен указанный файл; если NULL -> все магазины |
file_name | Имя файла в nginx |
import_date | Дата записи данных в этот файл |
objects_count | Количество объектов/сущностей, записанных в этот файл |
object_type | Тип данных |
Задания для отправки на кассу хранятся в un_cg_product_file_for_cashes
Основные поля:
Поле | Назначение |
cash_number | Номер кассы, для которой предназначенуказанный файл; если NULL - все кассы |
shop_number | Номер магазина, в котором эта кассазарегистрирована |
file_name | само имя файла в nginx |
import_date | Дата записи данных в этот файл |
objects_count | Количество объектов/сущностей, записанных вэтот файл |
sourcefilename | Источник данных, если допустимо (например,конкретный xml) |
Процесс отправки заданий можно проследить в визуализации или в таблице cash_activity.
При нажатии на кнопку Новая касса очередь формируется:un_cg_not_received_to_cash_product→ un_cg_product_file_for_cashes
Послес качивания файла кассой, модуль Товары начинает его обработку. После разбора файла и сохранения данных товарного справочника, идентификатор обработанного файла обновляет запись в базе данных кассы catalog → таблица cg_lastproductsid. Когда касса скачала задания с товарами, задания в таблице un_cg_product_file_for_cashes удаляются, аналогично файлам в директории {inst dir}\SetRetail10\ nginx\html\products
ВАЖНО!
Ошибки обработки товаров кассой можно проследить в логе на кассе \\IP кассы\storage\crystal-cash\logs\ goods.log предварительно расширив уровень логирования по инструкции Настройка логирования кассовой программы
Весовые товары
- Транспорт внутри весового модуля описан в разделе Весовой модуль: Техническое описание.
- Каждые 3 минуты, вновь поступивший весовой товар, который необходимо отправить на весы, обрабатывается службой.
- Служба привязывает товар к весам и назначает ему PLU.
Если все прошло успешно, то в карточке товара, на вкладке Штриховые коды отобразится номер PLU и весы к которым привязан товар:
Если товар привязался к весам и PLU, то в таблице scales_plues хранится информация о товаре для весов.
В таблице scales_linktoplu непосредственно привязка товара к весам и результат загрузки (связь идет через таблицу scales_plues):
Статусы:
- 0 – не отправлено
- 1 – отправляется
- 2 – успешно отправлено
- 3 – ошибка
© 1994-2024, ООО «Кристалл Сервис Интеграция».
Все права защищены..