Введение

Интерактивные (ИА) отчёты — актуальная версия отчётов в RK7. При установке через инсталлятор, их можно настроить в процессе. 

Для работы требуется MS SQL Server 2012 и выше. 

Для работы ИА-отчётов у вашего пользователя должен быть указан ресторан в поле Текущий ресторан

Принципиальная схема взаимодействия серверов

 Установка интерактивных отчетов происходит через инсталлятор r_keeper_7.

Для работы ИА-отчетов необходимо:

  1. Установить и настроить CommonServer;
  2. Установить и настроить Сервер функции отчетов (IRReportsFSPrj.exe);
  3. Настроить плагин для менеджерской станции. Для этого необходимо скопировать файлы FCLocalize.xml, SchRepPluginClient.xml, SchRepPluginClient.ini в папку RK7/bin/win/plugins;
  4. Настроить ini-файлы.

Важно: если на локальном ПК не установлен клиент для SQL Server - сервер функции отчетов будет недоступен для выбора в инсталляторе!

До того, как был добавлен параметр RecalcInvalidShifts, feature server не пересчитывал битые смены. Теперь, если смену вылечат, при включении этого параметра битые смены будут пересчитываться в течение времени, указанного в параметре FastControlDays. Если после FastControlDays смена так и осталась битой, она больше не пересчитается.

Этапы установки

  1. Скачайте с фтп необходимую версию инсталлятора, например ftp://ftp.ucs.ru/rk7/versions/7_05_03/RK7_Setup_7.5.3.268.1.exe и запустите от имени администратора.

  2. Выбор языка, приветствие и условия лицензионного соглашения не описываются из-за нецелесообразности.

  3. Далее выбираем "Установка нового экземпляра" (в том случае, если инсталлятор используется для удаления, выбираем "Удаление одного из уже установленных экземпляров"), нажимаем кнопку "Далее" (см. рис. 1).

Рис.1  Выбор между установкой и удалением ранее установленных компонентов

  1. В открывшемся окне выбираем каталог, в который будет установлен экземпляр, вводим имя экземпляра и нажимаем кнопку "Далее". Месторасположение может быть любым (см. рис. 2).

Рис.2  Выбор каталога для установки и ввод имени экземпляра

  1. В открывшемся окне выбираем необходимые компоненты и нажимаем кнопку "Далее" (см. рис. 3).

Примечание: в обязательном порядке выбираем "UCS CommonServer", "Сервер функции отчетов" и "Плагин отчетов". Если на машине уже установлен CommonServer, то можно использовать его.

Так же обратите внимание на пункт "Менеджерская станция". При выборе данного пункта будет создан новый экземпляр менеджерской станции с настроенным плагином.

Если вы выбрали данный пункт, то переходите к пункту 6, если не выбирали - к пункту 7.

Рис.3  Выбор компонент для установки

  1. В открывшемся окне вводим сетевое имя и порт сервера справочников и нажимаем кнопку "Далее" (см. рис. 4).

Рис.4  Ввод сетевого имени сервера справочников

  1. В открывшемся окне вводим IP- адрес Сервера функции отчетов (IRReportsFSPrj.exe) и порт, на котором физически будет работать служба и нажимаем кнопку "Далее" (см. рис. 5).

Важно: Порт сервера функции отчетов должен быть уникальным и рекомендуется прописывать порт, отличный от 8888.

Рис.5 Ввод адреса и портов сервера функции отчетов

  1. В открывшемся окне вводим внешний IP- адрес Сервера функции отчетов (IRReportsFSPrj.exe) и внешний порт, по которому настраивается IRReportsFSPrj (нужен для указания обратной связи), нажимаем кнопку "Далее" (см. рис. 6).

Рис.6 Ввод внешнего адреса и портов сервера функции отчетов

9. В открывшемся окне вводим IP и порт для нового CS(CommonServer), нажимаем кнопку "Далее" (см. рис. 7).

Примечание: данное событие происходит, если при установке был выбран пункт UCS CommonServer.

Рис.7 Адрес и порт создаваемого CommonServer

10. При использовании сертификатов выберите их (не обязательно) и нажмите кнопку "Далее" (см. рис.8).

Рис.8 Выбор сертификата

11. Выберите уровень логирования и нажмите кнопку "Далее" (см. рис.9).

Log-файл плагина создается автоматически в \bin\win\Logs\plugins\SchRepPluginClient\log\schRepPlugin.txt. Местоположение файла менять нельзя.

Log-файл FS сервера создается автоматически в *Logs\ директории FS сервера. Местоположение файла менять нельзя.

Рис.9 Выбор уровня логирования

12. Выберите компоненты, которые будут работать как службы и нажмите кнопку "Далее" (см.рис.10).

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

Рис.10 Выбор компонент, которые будут установлены в качестве службы

13. Введите данные для соединения с MS SQL сервером и нажмите кнопку "Далее" (см.рис.11).

Рис.11 Соединение с MS SQL сервером

14. Введите имя накопительной SQL базы данных и нажмите кнопку "Далее" (см.рис.12).
Проверить имя БД можно в справочнике "Настройки внешних БД".

Рис.12 Имя SQL базы данных

15 Выберите приложения, для которых необходимо создать ярлыки на рабочем столе и нажмите кнопку "Далее" (см.рис.13).

Рис.13 Выбор приложений, для которых будут созданы ярлыки на рабочем столе

16. Нажмите кнопку "Установить" для начала процесса установки (см.рис.14).

Рис.14 Запуск процесса установки

17. Нажмите кнопку "Завершить", чтобы выйти из программы установки (см.рис.15).

Рис.15 Завершение установки

18. После запуска CS отобразится в службах в состоянии "Работает" (см. рис. 16). Если CS был установлен в качестве приложения, то появится  окно с сообщением об успешном запуске и информацией о портах (см. рис. 16а).

Рис.16  CS запущен в качестве службы

  

Рис.16а  CS запущен в качестве приложения

Важно: при изменении версии FS не всегда меняется версия агрегатов, поэтому при переходе на новую версию фичи агрегаты могут не пересчитываться. Так же не рекомендуется удалять агрегатные БД. Если БД переносится на другой сервер, то необходимо так же переносить и агрегатные БД или же понизить версию агрегатов в БД (только на тестовых БД)

19. Если установить Feature Server в качестве приложения, то после запуска увидим следующее окошко:

Рис.17  IR Report Server

Описание ini-файлов

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

CS_Service.ini - конфигурационный файл CommonServer

[CS_CONNECTION]

connect_timeout(s)=30
receive_timeout(s)=30
send_timeout(s)=30
compression=c_Base64_ZLib
def_port=7007
SSL_port=7007
db_path=C:\Program Files (x86)\UCS\CommonServerRK7IR\RK7_IR\UCS.csdb

[CS]

Name=CS_RK7_IR
loglevel=3
Log_level=3
i_guid={C7BB200D-C644-4743-BEA9-D93EB518EDFF}
certificate_path=C:\Program Files (x86)\UCS\CommonServerRK7IR\RK7_IR\
Root_Cert_File=ca.cer
Cert_File=work.cer
Key_File=work.key
Описание основных параметров
 
Секция [CS_CONNECTION]
Тайм-ауты в секундах. Для больших баз (10 Гб и выше) рекомендуется выставлять большие значения значения (от 30000 до 50000)
  • connect_timeout(s)=30   
  • receive_timeout(s)=30
  • send_timeout(s)=30
  • def_port=7007                         ;; основной порт Common сервера

FeatureServPrj.ini - конфигурационный файл FS сервера

Конфигурационный файл FS сервера

[FS_CONNECTION]

ConnectTimeout=50000
ReceiveTimeout=50000
SendTimeout=50000
CommandTimeOut=50000
SessionTimeOut=50000

url=http://127.0.0.1:7777/soap/IStructuresInfo 
start_port=7777 
DB_Connect_Count=10 

[CS_CONNECTION] 

// адрес и порт машины с CS_Service 
url=http://127.0.0.1:7007/soap/UCSCommonWS 

[FS_TYPE] 

i_Guid={F4DED846-8913-4F1D-B5B5-5699CAC45DA9} 
instance_name=fsRK7_2 
MasterServer=1 
connection_string=Provider=SQLNCLI11.1;Persist Security Info=True;Initial Catalog=rk7_5_3_Z;Data Source=127.0.0.1,1433 
MainLang=FeatureServPrj.rus 

[FS_MAILING] 

Mailing=0 

[RPL_PARAM] 

url =http://121.10.10.111:8892/soap/IStructuresInfo 
start_port = 8892 

[FS_AGREGATE] 

Agregate=1 
Count_shifts=10 
Time_between_recalc=0
Time_between_checking=10
WaitConnectionInterval=5  
Описание параметров
 
Секция [FS_CONNECTION]
 
Тайм-ауты в секундах. Для больших баз (10 Гб и выше) рекомендуется выставлять большие значения значения (от 30000 до 50000)
  • ConnectTimeout=50000
  • ReceiveTimeout=50000
  • SendTimeout=50000
  • CommandTimeOut=50000
  • SessionTimeOut=50000
  • url=http://127.0.0.1:7777/soap/IStructuresInfo               ;; собственный url Feature-сервера
  • start_port=7777                                                                      ;; собственный порт Feature-сервера
  • DB_Connect_Count=10 
Секция [CS_CONNECTION] 
  • url=http://127.0.0.1:7007/soap/UCSCommonWS            ;; адрес и порт машины с установленным Common-сервером 

Секция [FS_TYPE]

  • i_Guid - уникальный код FS сервера (GUID FS сервера). Уникален для каждого экземпляра сервера;
  • intrance_name - имя службы FS сервера (указывается при установке, далее не меняется. В случае необходимости изменения имени службы, его необходимо будет изменить и в реестре);
  • MasterServer=1  - параметр, влияющий на запрет редактирования справочников (0 - запрещено, 1 - разрешено) 
  • connection_string - строка подключения к базе SQL
  • MainLang - настрока локализации. В том случае, если локализация не совпадает с локализацией RK7, файл необходимо заменить и прописать его в FeatureServPrj.ini.
Секция [FS_MAILING]
  • Mailing - рассылка (1 - включена, 0 - отключена);

Секция [RPL_PARAM]

  • url http://121.10.10.111:8892/soap/IStructuresInfo - внешний адрес, видимый для CS, где "/soap/IStructuresInfo"- одинаковая приставка для всех FS
  • start_port = 8892 - порт на физической машине, на которой стартует фича.
Примечание: url в настройках всех микросерверов (не только этой фичи) - это адрес обратной связи, по которому он будет виден с Common Server. Любой фича-сервер регистрируется с этим адресом на CS.
start_port - этот порт на машине который занимает конкретная фича. Т.к. в сети может использоваться проброс портов, то startport может отличаться от порта указанного в параметре url.
 
Секция [FS_AGREGATE]

Agregate=1  //  1 - включить агрегаты, 0 - выключить

Count_shifts=10  // число смен, которое будет пересчитано при очередной проверке

Time_between_recalc=0  // время между пересчетом агрегатов, в минутах

Time_between_checking=10  // время проверки актальности агрегатов после последнего успешного пересчета агрегатов

WaitConnectionInterval=5 // время ожидания соединения, в минутах (добавляется при необходимости, начиная с FS 1.24.1.0).

Примечание: Начиная с FS 1.24.1.0 появилась возможность восстановления разрыва соединения с базой данных. По умолчанию время, через которое будут происходить попытки соединения с базой данных, равно 1 минуте. При необходимости увеличения этого времени в ini- файл FS надо добавить параметр WaitConnectionInterval в секцию [FS_AGREGATE]. Параметр задает время в минутах, которое будет ожидать служба до попытки соединения с базой данных в случае обрыва соединения.

SchRepPluginClient.ini - конфигурационный файл плагина

Настроечный файл плагина (\\rk7_5_3_Z\bin\win\plugins\SchRepPluginClient\SchRepPluginClient.ini)

[CS_CONNECTION]
url = http://127.0.0.1:7007/soap/UCSCommonW
fs_guid = {F4DED846-8913-4F1D-B5B5-5699CAC45DA9}
ConnectTimeout = 300000
ReceiveTimeout = 300000
SendTimeout= 300000
[CL_TYPE]
i_Guid={0DA2E90B-C4CA-46D1-80E0-E26A076B4042}

Описание параметров

Секция [CS_CONNECTION]

  • url=http://127.0.0.1:7007/soap/UCSCommonWS    -   url для подключения к Common-серверу
  • fs_guid - уникальный код(GUID) FS сервера. Указывается GUID того сервера, к которому подключается плагин. GUID FS сервера должен быть уникальным для каждого экземпляра FS сервера. Однако несколько плагинов могут обращаться к одному FS серверу, в этом случае у разных экземпляров плагина будет одинаковый fs_guid
  • ConnectTimeout=300000     ;; в зависисмости от размера БД SQL может принимать значения 300000...500000000
  • ReceiveTimeout=300000     ;; в зависисмости от размера БД SQL может принимать значения 300000...500000000
  • SendTimeout=300000           ;; в зависисмости от размера БД SQL может принимать значения 300000...500000000

Секция [CL_TYPE]

  • i_Guid - уникальный код плагина(GUID плагина). Уникален для каждого экземпляра плагина.

Запуск отчетов в RK7MAN

Авторизуйтесь в менеджерской станции.

Если после входа появляется ошибка "You are not authorized", то рекомендуем проверьте что в базе данных SQL есть справочники справочники r_keeper_7. Если их нет, проверьте настройки связи с SQL и повторите экспорт.

В верхнем меню появиться пункт "IR reports" с сылками на отчеты, а в пункте "Расширения" дополнительные настройки по ИА отчетам.

Рис.32 Справочник ИА отчетов

Настройка отчетов для сети ресторанов

Ниже приведена схема реализации отчетов через плагин для нескольких ресторанов.

 

 

 

Рис.33 Конфигурация для сети ресторанов

FS подключается к БД (связь с SQL прописывается в FeatureServPrj.ini) и регистрирует свой GUID на CS. Соответственно, для каждой БД SQL(или для каждой точки, будь то локальная или центральная) можно настроить свой FS. Функционал FS достаточно большой, он может работать и без плагина, например в режиме рассылки отчетов. Все FS будут регистрироваться на одном CS.  

Плагин для РК7 подключается к FS через CS. Плагин может работать только с одним FS. Каждый плагин будет подключаться к CS и искать там нужный FS по GUID. CS может быть один и он будет работать с несколькими FS. 

Если есть необходимость в точке А просматривать данные (ИА отчеты) точки Б, то плагин в точке А нужно перенастроить на FS в точке Б (линия H на рисунке 34). Либо возможен вариант перенастройки FS в точке А на БД в точке Б (в ини-файле FS изменить параметр связи с БД SQL).

Рис.34 Варианты подключений плагина ИА отчетов

Скрытие ресторана их фильтра отчета

  1. Защитите ресторан предустановленной привилегией на объект.
  2. Отключите у роли те привилегии, к ресторанам которых необходимо запретить доступ
  3. В результате пользователи роли перестанут видеть рестораны, на которые у них нет привилегий. Способ работает на все предустановленные интерактивные и веб-отчеты.
  4. Для самодельных отчетов этот способ может не работать. В этом случае необходимо у параметра Ресторан скорректировать запрос, выбирающий значения — просто скопировать запрос для такого же параметра из любого предустановленного отчета. Чтобы это сделать, откройте параметры отчёта и отредактируйте SQL-запрос.
  5. Для параметра можно создать список значений, из которого пользователь будет выбирать нужные постановкой галочек в фильтре:

    Этот список создается SQL-запросом в настройках параметра.
  6. В настройках параметров набора данных созданного отчета, для параметра Ресторан задайте точно такой же запрос, как и в наборах данных у предустановленных отчетов для того же параметра. Запрос для параметра Ресторан у предустановленных отчетов как раз и сделан так, чтобы учитывать доступность ресторанов пользователю согласно привилегиям.

Решение проблем

Проблемы с подключением

Ошибка: Вы не авторизованы

19.12.2019 17:22:01.743> [LOG]Пользователь введен не верно
19.12.2019 17:22:02.080> [LOG]Вы не авторизованы
19.12.2019 17:22:12.893> [LOG]After registration: code 2, Перерегистрация сервера
19.12.2019 17:22:28.217> [LOG]After registration: code 2, Перерегистрация сервера

Причина:, в настройках подключения Feature Server не указан пользователь базы данных.
Решение: Откройте файл IRReportsFSPrj.ini и укажите в поле connection_string правильную строку подключения с логином и паролем. Пример:

connection_string=Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog=7171848;Data Source=127.0.0.1

Ошибка: Недопустимое имя объекта PLG_EMPLOYEEROLES

Причина: Feature Server не создал таблицу PLG_EMPLOYEEROLES
Решение: используйте скрипт, приложенный к статье. Обязательно укажите в скрипте имя своей базы данных.

Проблемы связанные с SQL collation

При возникновении проблем такого рода, ошибка может звучать так: "Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Lithuanian_CI_AS" in the equal to operation".

В результате такого некоторые ИА отчеты могут не работать. Для решения необходимо проверить настройки сортировки у SQL сервера и самой БД (рис.34). После этого необходимо пересоздать агрегатные базы STAT.

Для пересоздания агрегатных БД необходимо:
1. Остановить FS.
2. Выполнить на основной БД скрипт: UPDATE [dbo].[DBInformation] set [DBVer]=0 where [Alias] = 'Agregates'
3. Удалить все агрегатные БД (STAT)
4. Запустить FS

Рис.35 Свойства базы данных - параметры сортировки

Проблемы при импорте отчета из XML-файла

При возникновении проблем такого рода, ошибка может звучать так: "Could not find stored procedure 'RPL8_GET_CURRENT_DATABASE_GUID"

Проблема связана с отсутвием некоторых таблиц и процедур. Необходимо выполнить скрипты:
USE [RK7]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RPL8_TRANSACT](
 [ID_INC] [int] IDENTITY(1,1) NOT NULL,
 [GUID] [uniqueidentifier] NOT NULL,
 [SERVER_GUID] [uniqueidentifier] NOT NULL,
 [DTS] [datetime] NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[RPL8_GET_CURRENT_DATABASE_GUID] 
(@SRVGUID uniqueidentifier OUTPUT ) 
 AS BEGIN 
 SET @SRVGUID = NEWID() 
 END 
GO
ВложениеРазмер
rk7_create_db_tables.sql6.16 КБ