Introduction

Reports in r_keeper 7 manager station can only be viewed after the references server is licensed, and its connection to the external database under MS SQL Server 2012 control is configured. Therefore, a references server can function as a server for report generation or a reports server.

As the number of restaurants increases in the base up to dozens, the references server load increases as well. Therefore, r_keeper 7 allows creating intermediate (transit, subordinate) servers implemented via the reports server - rkReportServer.exe.

Usage of reports servers is basically common for restaurant chains. For one to three restaurants, work without a reports server is possible. In this case, a references server processes report data.
The reports server's set of functions and properties is identical to that of the references server, except for just one - lack of possibility to edit references when the manager station is connected to it.

The reports server executable file is rkReportServer.exe, the default config file name is repserv.ini.

To install software from the distribution package (find the archive in ftp://ftp.ucs.ru/rk7/versions/7_05_03/STANDALONES/ folder), copy the REPSERV.INI file from \bin\win\ini\ folder to \bin\win\ working folder where rkReportServer.exe is located.

To install software via the installer, find a server with the config file in [installation path\instance name\Rk7Reports].


Names of the server and config file may be arbitrary, but remember that, by default, if no INI file name is specified for the server, it will search for the REPSERV.ini file. The information on the use of other configuration files is available below, in the Launch section.

When is Reports Server Needed?

  1. A reports server is needed when it is necessary to divide reports and references info into separate tasks.
  2. A reports server is required to generate reports (with prior recalculation of cubes) and to view them in the manager station (the license is needed, connection to the internal SQL database is set up);

In this case, there may be a Central Reports Server collecting data from all restaurants (or from local reports servers), and a Local Reports Server receiving data directly from a specific cash server (if the customer has several restaurants with cash servers).

  1. A reports server is needed to reduce the load on existing servers when the number of restaurants is growing fast.
  2. A reports server can be used as intermediate/transit server (without the license and setup of connection to SQL). Useful when there are hundreds of restaurants.

The values for some parameters, given in this article, are default and are not mandatory to specify.

The connection between the servers is shown below:

Licensing

Licensing is necessary if the reports server is supposed to be used for data collection and cube reports generation. The license is bound to the full object code (9 digits) and the key code.
Prior to licensing, the reports server needs to be created in the manager station, in the Options - OLAP reports - Reporting servers.

Reports server licensing procedure is identical to references server licensing procedure described in the article on the References server.

Briefly, the procedure is as follows:

Executing the paragraph below is necessary if the server has already been licensed, that is, the existing license needs to be modified (prolongation, an increasing number of stations, hardware change, etc.)

Launch

Launch the reports server as follows:

Specify the following parameters in repserv.ini, in the [Config] section:

Client = "REPSRV3001" ; reports server network IDRefServer = "RK7SRV3001" ; upper level server network ID (it can be both references server and reports server)RefsBasePath = ".\BaseData\refsdata.udb" ; relative or absolute (recommended) path to reference DBCheckBasePath = ".\BaseData\check_db.udb" ; relative or absolute (recommended) path to receipt (cumulative) DBWorkModsFile = ".\BaseData\wmodules.udb" ; relative or absolute (recommended) path to working modules DBReceivedPath = ".\Received\" ; relative or absolute (recommended) path to directory with received closed shiftsErrorLog = "repsserv.stk" ; relative or absolute (recommended) path to log fileUseSql = 0 ; do not connect to external DB under SQL Server 2012 control

The first launch should always be performed as an application (with the /desktop parameter). Also, make sure to perform the launch as administrator.

The default server config file is repserv.ini. If the reports server needs to be launched with other INI file, use the following command: rkReportServer.exe /ininame: newname.ini /desktop.

As well as references server, reports server can be launched as a service. For this purpose, use the /install parameter.

Upon server lunch as a service (rkReportsServer.exe/desktop) the following icon will appear in the tray:

Repsserv.ini File Description

Before launching the reports server, uncheck the Read only box in its parent folder attributes (otherwise, the reports server will not be able to create its database). Also, make sure the full path to the folder with the RKREPORTSSERVER.EXE file contains no spaces, and the total number of path symbols does not exceed 200.

Copy the repserv.ini file from the RK7/BIN/WIN/ini folder if you have not done this before, and place it beside the RKREPORTSSERVER.EXE file, i. e., into the RK7/BIN/WIN/ folder.

[CONFIG]
Client = "REPSRV3001" ;; the reports server network name, same as the corresponding reports server in the management station. See Manager station settings belowRefServer = "RK7SRV_3001" ;; the references server network name (or the upper reports server)RefsBasePath = ".\BaseData\refsdata.udb" ;; a full path to the references base, do not confuse with rk7.udbCheckBasePath = ".\BaseData\check_db.udb" ;; a full path to the receipt base, do not confuse with check.udbWorkModsFile = ".\BaseData\wmodules.udb" ;; a full path to the working modules baseReceivedPath = ".\Received\" ;; a path to the data receiving folderErrorLog = "repsserv.stk" ;; a log file name (add the path if necessary). By default, the log file is saved in the same folder where RKREPORTSSERVER.exe is placedErrorLogSize = 1048576 ;; an error log size in bytesOldRefsSyncMode = 0 ;; 1 - enable old synchronization mode, necessary if PollEvents=1PollEvents = 0 ;; enable periodic references server polling mode (in the references server .ini file, fill EventCachePath= parameter), and set OldRefsSyncMode=1RecalcAllCubesAt = 2015 ;; Time is specified without semicolon in HHMM format. Recalculate all cubes that would be recalculated by "recalculate all cubes" item at the manager station at 20:15. For versions 7.4.20.60 or higher.CubesRecalc = 0 ;; disable cubes recalculation, 1- enable cubes recalculation, 2 - only manual cubes recalculation (For versions7.6.1.2 or higher!)NoReports = 0 ;; disabling menu with manager station reports (For versions 7.6.1.2 or higher!)ServPingTimeout = 5000 ;; 7.4.17.78 or higherUseSql = 1 ;; 0 - if there is no connection to SQL, 1 - if connection to SQL is usedLoadThreadsCount = 4 ;; load closed shifts data to the cumulative DB simultaneously, "4" - a number of files processed simultaneously (recommended in case of the big number of shift files being received simultaneously). Version shall be higher than 7.5.2.328!cubesBuildTool = "bldcubex.exe" ;; Enable bldcubex.exe utility for cubes generation at PC with 2+ GB memory (For versions7.6.2 or higher!)
[NETKERN]Protocols = tcpsoc.dll ;; protocols list (comma separated), make sure these DLL files are placed in the folder with the RKREPORTSSERVER.exe file[TCPSOC]PORT=3639 ;; a port for the server
[TCPDNS]RK7SRV_3001=subway.rkeeper.com:3648;;REP_CENTR4=subway.rkeeper.com:3644;;RK7SRV=subway.rkeeper.com:3639
[UPDATE]NoUpdate=0
; scheduler. only for 7.5.2.502+[SYNCCONF]; Enable scheduled synchronizationRefsSyncMode=1; synchronization time in CRON format 50 10 * * * is equivalent to "always at 10:50", 45 13 * * * is equivalent to "always at 13:45".Format is as follows:
* * * * *| | | | || | | | +----- Days of week (range: 1-7)| | | +------- Months (range: 1-12)| | +--------- Days of month (range: 1-31)| +----------- Hours (range: 0-23)+------------- Minutes (range: 0-59)

SyncSchedule=50 10 * * * ; synchronize references at reports server loadingSyncOnReload=0

Reports Server Update

Right-click the icon to open the reports server in a browser. Default HTTP port can be set in the manager station by specifying a new port in reports server properties (HTTP Server group -> HTTP Data Port group).

After the reports server launch, check its connection to the upper server.

The reports server update is identical to the references server update.

The report server must be restarted after its update,

Manager Station Connection to Reports Server

Use the following ways to connect the manager station to the reports server:

  1. Create a separate instance of the manager station with a new INI file and specify the reports server network ID in the [REFEDIT] section therein.

  2. Launch the manager station again, leaving the INI file unchanged. When the logging window appears, press Ctrl+Alt+S on the keyboard and enter the reports server ID in the poll in the bottom left corner.

The manager station will make necessary modifications in rk7man.ini, and you will have to select the server by pressing Ctrl+Alt+S at the next launch.

Cubes Recalculation

Cubes are placed in the Options — OLAP reports — Cubes and Reports reference.

The status of a cube and its data can be checked in the cube properties, Data Processing section. Each cube has a list of reports servers and cube recalculation info (periodicity, calculation time, last error, etc.).

You can recalculate a required cube manually (right-click -> Actions -> Recalculate).

Starting from version 7.06.04.041: if a server has over 2 GB of RAM, you can use a new utility for cubes generation – bldcubex.exe. To do this, add the following settings to repserv.ini:


[CONFIG]

cubesBuildTool = "bldcubex.exe"


and restart the reports server. Then, you will have a new rk7manex.exe manager station file. Use it for cube report generation.

It is desirable to create a new user (role) with "cubes and reports only" rights and hide all other elements in the manager station for this user (role). Then, create an icon for such a manager station with a name like Reports.

Starting from version 7.4.20.60 or higher, all cubes, that would be recalculated by the "recalculate all cubes" menu item at the manager station, can be recalculated automatically at the specified time by inserting the following command in the INI file:

RecalcAllCubesAt = "2015" (Time is specified without semicolon "HHMM") 
The value is easy to check via the web interface.

Setup of Reports Servers for Restaurant Chain

  1. Example of reports servers connection in chain restaurants

Big restaurants chains (like SUBWAY, BURGER KING) use quite extensive nets consisting of multilevel connection trees of reports servers with a central reports server (numbering in hundreds sometimes). Since the data (meals, prices, composition) is the same within one chain, it is enough to make modifications in the manager station working with the upper-level server (references server), and the data synchronizes automatically with lower-level servers (intermediate), and then with local servers (in a restaurant).

When the manager station is connected to the reports server (other than central), some rights to edit references and object properties will be restricted!

Connection of reports server to an external DB is required if reports generation and viewing is needed when the manager station is connected to this reports server.

Find the connection diagram below:

In this case, the servers that will be used to view reports and process data, are subject to licensing. The quantity of stations means the number of different users that can generate reports at the same time.

If there are no active licenses in the base (a case with one references server without a license and several licensed reports servers), the number of manager station connections to the server is limited to 1. This situation may occur when all the licenses of the servers chain expire.

Configuration example for the network of 2 restaurants and a head office

How it works:

After the common shift being closed at the cash server 1 (midserver1) of restaurant #1, the shift data is processed at the reports server 1 and the reports server of the head office.

The same is valid for the second restaurant. The closed common shift is processed by a local reports server 2, and further in the head office.

Framework

SQL databases

Stations and devices

Create 2 restaurants and a cash server for each of them.


External DB settings

Create 3 settings as described in the article on connection to MS SQL, and configure the connection to corresponding reports servers (shall be created additionally). !

This shall result in 3 configurations:

  1. for Head office (‘reports_HO’ database);
  2. for restaurant 1 (‘reports_rest1’ database);

for restaurant 2 (‘reports_rest2’ database).

2.5. reports server properties

Attention! Do not forget to acquire 3 licenses for 3 reports servers.

2.6. Ini files

For reports server 1:

[CONFIG]

Client = "repsrv_1"

RefServer = "RK7SRV_3001"

RefsBasePath = ".\BaseData1\refsdata.udb"

CheckBasePath = ".\BaseData1\check_db.udb"

ReceivedPath = ".\Received1\"

ErrorLog = "repsserv1.stk"


[NETKERN]

Protocols = tcpsoc.dll

For reports server 2:

[CONFIG]

Client = "repsrv_2"

RefServer = "RK7SRV_3001"

RefsBasePath = ".\BaseData2\refsdata.udb"

CheckBasePath = ".\BaseData2\check_db.udb"

ReceivedPath = ".\Received2\"

ErrorLog = "repsserv2.stk"


[NETKERN]

Protocols = tcpsoc.dll

Manager station connected to references server (refserver):

[REFEDIT]

Server=RK7SRV_3001

Client=rk7man_ref

Manager station connected to reports server 1:

[REFEDIT]

Server=repsrv_1 //network name of reports server 1

Client=rk7man_rep1

Manager station connected to reports server 2:

[REFEDIT]

Server=repsrv_2 //network name of reports server 2

Client=rk7man_rep2

2.7. Employees and rights thereof

Add 2 employee groups:
* for reports server 1
* for reports server 2

Configure their right in properties:
* give all rights to view reports
* manager restrictions --> reports servers à mark corresponding reports server

Set the following in employee properties:
* general --- current restaurant
* general --- account --- login and password

Using valid SSL certificates for reports server in the domain

Default certificate (for rk7.local) is in BaseData\httpKeys\ folder, default.pem file.
To use your own certificate, rename it (own certificate) to mylocal.pem, and place it into the same catalog, then restart reports server.

Certificate properties:

Please note

attempt to use wildcard certificate for FQDN machine with custom port and *.DomainName.local:8080 template failed. *.DomainName.local template worked.

Troubleshooting

  1. "Cannot load cube data (cube data is empty or corrupted): Cannot open file "D:\UCS\RK7_5_1_34\bin\win\Cubes\00000022.blb". File not found". (see figure below)

Solution: Find cube corresponding to the report and recalculate it!

  1. In Windows 7 and higher OS, when report generation is attempted at manager station, "CubeDLL: Error reading Grid -> LICENSE_STR: Failed to set data for" error occurs. "CubeDLL:" error occurs in the course of viewing corresponding cube.

Solution: Assign administrator rights to Windows 7 user or run manager station as administrator.
Disable account control

  1. "Item 0 was not found in external base config collection"error occurs during report generation.

Reason: this occurs if the role has no connection to SQL configured, and the user attempts to run existing or create new report that is generated via FR4 directly from SQL.

4 Connections limit exceeded

Reason - pre-installed reports server is licensed in RK7, and you are trying to create one more reports server

Solution - reset license data of extra reports server, and create empty string "Setup of connection to external DB"

  1. If the following error occurs while implementing internal or external base on your computer:

    check correctness of filling the following lines:

Reason: When "Connection to external DB" block is filled, "Reference logs" block is filled automatically

Solution: SQL username and password shall be the same in "Connection to external DB" and "Reference logs" blocks

 Installation of cash register station on Linux  Setup of service print