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

Запрос данных о продажах в ERP с помощью reports.request

Описание

Инцидент: клиенту требуется запросить данные о продажах за определенный день (диапазон дат)

Как решить: Для того, чтобы перевыгрузить данные о продажах, необходимо файл reports.request (кодировка должна быть UTF без BOM) поместить в папку сервера Reports/source

Параметры для перевыгрузки

Параметр Допустимые значения Описание
date12.04.2011Конкретная дата
dateRange01.04.2011-12.04.2011Диапазон дат
reportZreports, purchasesОтчеты для выгрузки
shop432Номер магазина
shopsRange701-703

Номера магазинов

(При отсутствии – по всем магазинам)

cash3

Номер кассы

(При отсутствии – по всем магазинам)

cashesRange4-8Номера касс
shift3Номер смены
shiftsRange1-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. Отсчет таймера начинается от начала запуска сервера.

Например:

  1. В 18:00 - сервер запущен
  2. В 18:49 - будет выгружен файл reports.request в каталог /reports/source.
  3. В 18:49 в таблице erpi_purchase в поле sendedtoerp становиться false.
  4. Но ТОЛЬКО в 19:00 (исходя из таймера) будет сформированы xml в папке /reports/.
  5. Если даже файл reports.request в каталог /reports/source будет выгружен в 18:01, то xml в папке /reports/ появятся только в 19:00

Дополнительная информация

  • Файл запроса reports.request обновляет только статус чеков и Z-отчетов в табице БД и формирует файлы xml. 
  • Если время не установлено в модуле Управление продажами, (флаги не выставлены) то считается, что файловый экспорт выключен.

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

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