Публичное пространство
Запрос данных о продажах в ERP с помощью reports.request
Описание
Инцидент: клиенту требуется запросить данные о продажах за определенный день (диапазон дат)
Как решить: Для того, чтобы перевыгрузить данные о продажах, необходимо файл reports.request (кодировка должна быть UTF без BOM) поместить в папку сервера Reports/source
Параметры для перевыгрузки
Параметр | Допустимые значения | Описание |
| 12.04.2011 | Конкретная дата |
dateRange | 01.04.2011-12.04.2011 | Диапазон дат |
report | Zreports, purchases | Отчеты для выгрузки |
shop | 432 | Номер магазина |
shopsRange | 701-703 | Номера магазинов (При отсутствии – по всем магазинам) |
cash | 3 | Номер кассы (При отсутствии – по всем магазинам) |
cashesRange | 4-8 | Номера касс |
shift | 3 | Номер смены |
shiftsRange | 1-19 | Номера смен (При отсутствии – по всем сменам) |
Пример файла
dateRange: 03.03.2011-14.03.2011, 27.05.2011
report: Zreports, purchases
shopsRange: 13,15,17-22
cashsRange: 1-3,6,7
shiftsRange: 13,15,17-22Настройки в модуле "Управление продажами"
Файлы xml сформируются в зависимости от настроек выгрузки в модуле Управление продажами → Внешние системы → Вкладка ERP → Протокол Set Retail 10: файлы
Принцип срабатывания report.request
1. По-умолчанию каждую минуту SetRetail10 проверяет - есть ли файл reports.request в каталоге /reports/source.
2. Если файл есть, то в reports.request описан запрос на экспорта чеков, тогда сервис делает изменение таблицы erpi_purchase следующим образом:
Обновление чеков
UPDATE erpi_purchase
SET sendedtoerp = false
WHERE shop IN (...)
AND cash IN (...)
AND shift IN (...)
AND operday IN (...) 3. Если в файле reports.request описан запрос на экспорт z-отчётов, то сервис делает изменение таблицы erpi_zreport таким образом:
Обновление отчётов
UPDATE erpi_zreports
SET sendedtoerp = false
WHERE shopnumber IN (...)
AND cashnumber IN (...)
AND shiftnumber IN (...)
AND dateoperday IN (...)3. Если файла нет - ничего не происходит
4. В п.2 происхолдит обновление таблиц. Это приводит их в состояние, в котором таблицы находятся, как будто чеки только, что пришли с касс.
В таблице erpi_purchase в поле accepted_by_ws становится false.
5. Таймер экспорта (на скриншоте) настроен на 60 минут
6. Каждые 60 минут таймер в п.5 проверяет - нет ли записей в таблицах п.2, п.4. Если есть, то экспорт производится в каталог /reports
7. Отсчет таймера начинается от начала запуска сервера.
Например:
В 18:00 - сервер запущен
В 18:49 - будет выгружен файл reports.request в каталог /reports/source.
В 18:49 в таблице
erpi_purchaseв полеsendedtoerpстановитьсяfalse.Но ТОЛЬКО в 19:00 (исходя из таймера) будет сформированы xml в папке /reports/.
Если даже файл reports.request в каталог /reports/source будет выгружен в 18:01, то xml в папке /reports/ появятся только в 19:00
Дополнительная информация
Файл запроса reports.request обновляет только статус чеков и Z-отчетов в табице БД и формирует файлы xml.
Если время не установлено в модуле Управление продажами, (флаги не выставлены) то считается, что файловый экспорт выключен.