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

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

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

Описание

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

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

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

Параметр

Допустимые значения

Описание

date

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

Например:

  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. 

  • Если время не установлено в модуле Управление продажами, (флаги не выставлены) то считается, что файловый экспорт выключен.