Введение

Сервер отчетов — дополнительный сервер, который объединяет рестораны в одну сеть. Для одного-трех ресторанов возможна работа без серверов отчетов. Данные в таком случае обрабатывает сервер справочников.
Сервер отчетов по набору функций и свойств идентичен серверу справочников, за исключением одного — на сервере отчетов ничего нельзя редактировать.

Отчеты можно просматривать в менеджерской станции. Для их построения требуется пролицензировать сервер справочников и настроить связь с внешней БД в MS SQL Server 2012. Таким образом, сервер справочников может выступать как сервер для построения отчетов, или сервер отчетов. Когда количество ресторанов в базе увеличивается до нескольких десятков, нагрузка на сервер справочников также возрастает. Поэтому в r_keeper 7 предусмотрена возможность создавать промежуточные серверы, которые реализованы через сервер отчетов — rkReportServer.exe.

Исполняемый файл сервера отчетов — rkReportServer.exe, имя конфигурационного файла по умолчанию — repserv.ini.

Обратите внимание: названия сервера и конфигурационного файла могут быть произвольными. По умолчанию сервер будет искать конфигурационный файл REPSERV.ini, если не указан другой ini-файл . Про использование других конфигурационных файлов читайте ниже.

Использование сервера отчетов зависит от лицензии:

  • Если сервер отчетов пролицензирован, к нему можно подключиться с помощью менеджерской станции и просматривать отчеты
  • Если сервер отчетов не пролицензирован, он может использоваться только как транзитный узел для передачи данных. Сервер без лицензии можно использовать неограниченное количество раз. Центральный сервер отчетов может собирать данные с локальных, которые получают данные с кассовых серверов, когда у клиента есть несколько ресторанов с кассовыми серверами.

Связь серверов между собой представлена ниже:

Для настройки сервера отчетов его необходимо сначала создать в менеджерской станции, а затем отредактировать конфигурационный файл. 

Создание сервера отчетов

Для создания сервера отчетов:

  1. Перейдите в меню Настройки > OLAP отчеты > Серверы отчетов
  2. В левом поле нажмите правой кнопкой мыши и выберите пункт Новый сервер отчетов
  3. В блоке Главное заполните поле Название, назначьте Сетевой ID — этот идентификатор будет использоваться для связи с сервером отчетов. Смените статус сервера с Черновик на Активный
  4. В блоке Основное в строке Обслуживает ресторан выберите свой ресторан
  5. В блоке Синхронизация активируйте все настройки
  6. Сохраните изменения.

Готово, сервер отчета создан. Далее его необходимо пролицензировать.

Лицензирование

Важно

Лицензия привязывается к полному коду объекта и коду ключа.

Процесс лицензирования сервера отчетов идентичен процессу лицензирования сервера справочников, описанному в статье о Сервере справочников

Порядок действий следующий:

  1. Укажите код предприятия и код объекта

    1. Укажите Код корпорации , который был получен в системе лицензирования в параметр Код предприятия. Для этого перейдите в Настройки > Параметры > Установочные и укажите число в поле Код

    2. Код объекта из системы лицензирования необходимо указать в свойствах ресторана.
      Для этого перейдите в Сервис > Станции и устройства и выберите требуемый ресторан.
    3. Укажите в поле Код свой код объекта
    4. Согласитесь с подтверждениями и сохраните изменения.

  2. Перейдите в меню Настройки > OLAP отчеты > Серверы отчетов
  3. Выберите сервер

    Если сервер уже был пролицензирован и необходимо внести изменения существующей лицензии, отключите связь с внешней БД, если она есть. Затем выполните следующие действия:

    1.  Перейдите в Настройки связи с внешней БД
    2. Измените значение поле на пустое
    3. В поле Источник данных кубов переключите на пересчет через файл БД UDB (обмен через файл)
    4. Нажмите Сохранить.
  4. Выберите ключ защиты в поле Информация о лицензии > Ключ защиты > Физический номер
  5. Сгенерируйте запрос лицензии — нажмите правой кнопкой мыши на значок сервера отчетов, затем Действия > Сгенерировать запрос лицензии
  6. Сгенерируйте для данного запроса лицензию в системе лицензирования и укажите ее в поле Информация о лицензии > Лицензионный ключ
  7. Сохраните изменения
  8. Настройте связь с внешней БД, если требуются отчеты.

Запуск

Для запуска сервера отчетов:

  1. Пропишите следующие параметры в repserv.ini в секции [Config]:

    Client = "REPSRV3001"                         сетевой ID сервера отчетов
    RefServer = "RK7SRV3001"                      сетевой ID сервера верхнего уровня (им может быть как сервер справочников, так и сервер отчетов)
    DELPHI
  2. Запустите сервер.
Client = "REPSRV3001" 
RefServer = "RK7SRV3001"
RefsBasePath = ".\BaseData\refsdata.udb"
CheckBasePath = ".\BaseData\check_db.udb"
WorkModsFile = ".\BaseData\wmodules.udb"
ReceivedPath = ".\Received\"
ErrorLog = "repsserv.stk"
UseSql = 0
DELPHI


Если необходимо, чтобы сервер отчетов обращался к внешним базам данных, выполните следующие действия:

  1. Создайте базу данных в Management Studio
  2. Настройте связь с этой БД, используя инструкции в статье о настройки связи с MS SQL
  3. Если сервер отчетов уже запущен, остановите его
  4. В конфигурационном файле repserv.ini измените значение параметра UseSql с 0 на 1
  5. Запустите сервер.

Первый запуск всегда выполнять в качестве приложения с параметром /desktop. Также проверьте, чтобы запуск производился от имени администратора.
По умолчанию конфигурационный файл сервера — repserv.ini. Если необходимо запустить Сервер отчетов с другим ini-файлом, то используйте следующую команду: rkReportServer.exe /ininame: newname.ini /desktop.

Сервер отчетов так же, как и сервер справочников, можно запустить и как службу. Для этого используется параметр /install.

После запуска сервера как приложения rkReportsServer.exe/desktop в области уведомлений на рабочем столе появится значок

Описание файла Repsserv.ini

Скопируйте файл repserv.ini из папки RK7/BIN/WIN/ini, если вы этого еще не сделали и поместите его в ту же папку, где находится файл RKREPORTSSERVER.EXE — RK7/BIN/WIN/.

[CONFIG]

Client = "REPSRV3001"                           сетевое имя сервер отчетов, такое же как соответствующий сервер отчетов в менеджерской станции
RefServer = "RK7SRV_3001"                       сетевое имя сервера справочников или верхнего сервера отчетов
RefsBasePath = ".\BaseData\refsdata.udb"        полный путь к базе справочников, не путать с rk7.udb
CheckBasePath = ".\BaseData\check_db.udb"       полный путь к базе чеков, не путать с check.udb
WorkModsFile = ".\BaseData\wmodules.udb"        полный путь к базе рабочих модулей
ReceivedPath = ".\Received\"                    путь к папке для получения данных
ErrorLog = "repsserv.stk"                       имя лог-файла. Если необходимо, добавьте путь. По умолчанию лог-файл сохраняется в той же папке, где лежит RKREPORTSSERVER.exe
ErrorLogSize = 1048576                          размер журнала ошибок в байтах
OldRefsSyncMode = 0                             1 — включить старый режим синхронизации, необходим при PollEvents=1
PollEvents = 0                                  включить режим периодического опроса (полинга) сервера справочников. В файле .ini сервера справочников необходимо заполнить параметр EventCachePath=, также выставить OldRefsSyncMode=1
RecalcAllCubesAt = 2015                         время прописывается без двоеточия в формате "ЧЧММ". Пересчитывать все кубы, которые бы пересчитались по пункту меню "Пересчитать все кубы" на менеджерской станции в 20:15. Для версий 7.4.20.60 и выше.
CubesRecalc = 0                                 отключение пересчета кубов, 1 — включение пересчета кубов, 2 — пересчет кубов только в ручном режиме. Действует для версий 7.6.1.2 и выше
NoReports = 0                                   отключение меню с отчетами в менеджерской станции. Действует для версий 7.6.1.2 и выше
ServPingTimeout = 5000                          Для версий 7.4.17.78 и выше 
UseSql = 1                                      0 — если нет связи с базой в SQL, 1 — если используем связь с базой в SQL
LoadThreadsCount = 4                            загружать данные закрытых смен в накопительную БД параллельно, "4" — число обрабатываемых параллельно файлов. Рекомендуется при большом количестве одновременно поступающих файлов смен. Версия должна быть не ниже 7.5.2.328!
cubesBuildTool = "bldcubex.exe"                 Включение утилиты bldcubex.exe для построения кубов на ПК с 2+ ГБ памяти. Действует для версий 7.6.2 и выше

[NETKERN]
Protocols = tcpsoc.dll                          список протоколов, разделенные запятой. Убедитесь что эти DLL-файлы лежат в папке с файлом RKREPORTSSERVER.exe
[TCPSOC]
PORT=3639                                       порт для сервера
 
[TCPDNS]
RK7SRV_3001=subway.rkeeper.com:3648
REP_CENTR4=subway.rkeeper.com:3644
RK7SRV=subway.rkeeper.com:3639
 
[UPDATE]
NoUpdate=0
 
 шедулер. только для 7.5.2.502+
[SYNCCONF]
                                               Включить использование синхронизации по расписанию
RefsSyncMode=1
                                               время выполнения синхронизации в формате CRON 50 10 * * * равнозначно "всегда в 10:50", 45 13 * * * равнозначно "всегда в 13:45". 
Формат следующий:

* * * * *
| | | | |
| | | | +----- Дни недели (диапазон: 1-7)
| | | +------- Месяцы (диапазон: 1-12)
| | +--------- Дни месяца (диапазон: 1-31)
| +----------- Часы (диапазон: 0-23)
+------------- Минуты (диапазон: 0-59)


SyncSchedule=50 10 * * *                       синхронизировать справочники при загрузке сервера отчетов
SyncOnReload=0
DELPHI

Проверка настроек

Проверить корректность настройки сервера отчетов можно с помощью пересчета кубов. Кубы находятся в справочнике Настройки > OLAP отчеты > Кубы и отчеты. Куб считается автоматически или вручную.

  • Автоматический пересчет куба можно проверить в свойствах куба — в разделе Обработка данных. У каждого куба есть список серверов отчетов и информации о пересчете куба: периодичность, время вычисления, последняя ошибка и т.д.
  • Для пересчета вручную нажмите по кубу правой кнопкой мыши и выберите Действия > Пересчитать. Если все настроено корректно, то в разделе Обработка данных появится актуальная дата пересчета кубов.

Начиная с версии 7.06.04.041, если на сервере больше 2 ГБ оперативной памяти, вы можете использовать новую утилиту для построения кубов – bldcubex.exe. Для этого добавьте в repserv.ini настройку:

[CONFIG]
cubesBuildTool = "bldcubex.exe"
CODE

И перезапустите сервер отчетов. После этого появится новый файл менеджерской станции rk7manex.exe. Используйте его для построения кубических отчетов.

Желательно создать новую роль с правами только для кубов и отчетов, а все другие элементы в менеджерской станции — скрыть. Затем создайте ярлык для такой менеджерской станции с названием типа «Отчеты».

Начиная с версии 7.4.20.60 и выше, можно пересчитать все кубы, которые бы пересчитались при выполнении действия Пересчитать все кубы на менеджерской станции, автоматически в заданное время, прописав в INI-файле следующую команду:

RecalcAllCubesAt = "2015" (Время прописывается без двоеточия "ЧЧММ")
CODE

Его значение легко проверяется через веб-интерфейс.

Обновление сервера отчетов

При нажатии правой клавишей мыши по значку сервера отчетов, свойства сервера откроются в браузере. HTTP-порт по умолчанию можно назначить в менеджерской станции, указав новый порт в свойствах сервера отчетов: раздел HTTP Server > HTTP Data Port.

После запуска сервера отчетов проверьте его соединение с верхним сервером.

Обновление сервера отчетов аналогично обновлению сервера справочников. После обновления обязательно перезапустите сервер отчетов, иначе изменения не вступят в силу.