Настройка связи с Brunswick Vector
Общая информация
Работа с системой управления боулингом Brunswick Vector осуществляется по тому же принципу, что и в RK6. Отличие состоит в том, что для RK7 используется собственный сервис VectorBrunswick.exe.
В RK7 реализовано два взаимоисключающих режима работы сервиса VectorBrunswick.exe:
- Получение данных о закрытых дорожках напрямую из БД Brunswick Vector посредством вызова хранимых процедур usp_ReceiptSummaryInformation и usp_ReceiptRecordSummaryInformation;
- Получение уведомлений (нотификаций) от интерфейса Brunswick Vector (COM-библиотека VectorNotification.dll)
Режим работы сервиса определяется параметром TimerInterval из секции [Config] конфигурационного файла brunswick.ini :
- Если указано значение параметра TimerInterval , всегда используется режим №1
- Если параметр TimerInterval = 0 или значение не указано или параметр отсутствует, всегда используется режим №2
После получения информации о закрытой/оплаченной дорожке, сервис VectorBrunswick.exe использует подключение к XML-интерфейсу кассового сервера для создания заказа.
Для работы VectorBrunswick.exe необходимы файлы, которые лежат в папке /Rk7/bin/VectorBrunswick/ и /Rk7/bin/VectorBrunswick/ini/ и dll, которые лежат в папке менеджерской (/bin/win).
Нотификация Brunswick Vector (Vector Notification)
Общая информация
Нотификация Brunswick Vector представляет из себя интерфейс для уведомления стороннего ПО о различных событиях в системе. Первоначальное предназначение интерфейса - уведомление кассового ПО (POS) о новых записях в базе данных Brunswick Vector, но в дальнейшем интерфейс может быть расширен для поддержки других событий.
Технические спецификации
Нотификация Brunswick Vector реализована в виде COM-библиотеки VectorNotification.dll. Обе "стороны" процесса обмена, принимающая и отправляющая, должны использовать эту библиотеку. В основе библиотеки лежит обмен широковещательными сообщениями (UDP-протокол) - это накладывает ограничение на отправку уведомлений только в пределах локальной подсети. По умолчанию, используется UDP-порт 30471
Принцип работы VectorBrunswick.exe
- Сервис VectorBrunswick.exe получает от Brunswick Vector информацию о закрытой/оплаченной дорожке (использую один из режимов работы)
- Информация об игре с помощью XML-интерфейса передается на кассовый сервер
- Кассовый сервер создает заказ (параметр NewTable) и добавляет в него блюдо тарификации.
Настройка XML-интерфейса
- На закладку "Устройства" кассового сервера добавить интерфейс "XML interface for windows"
- Прописать у интерфейса порт
- Прописать у интерфейса пароль (опционально)
- В справочнике "Интерфейсы" для интерфейса "XML interface" у кассового сервера выбрать "XML interface for windows (iTCPXML.dll)"
- Добавить столько тарифицируемых устройств (Настройки -> Столы и залы -> Планы залов и столы -> вкладка Тарифицируемые устройства), сколько игровых дорожек в Брансвик (как настроить тарифицируемые устройства читайте в статье о настройке работы с боулингом AMF. В свойствах тарифицируемого устройства необходимо заполнить следующие поля: "номер дорожки"=номеру дорожки в Брансвике, "Тариф" - выбрать тариф (тариф должен быть с детализацией, справочник Меню -> Тарифы).
Настройка тарифов
Во вкладке Меню-Тарифы добавляем новую группу тарифов. Потом создаем Новый Тариф.
Добавление тарифицируемых устройств
Добавить столько тарифицируемых устройств (Настройки -> Столы и залы -> Планы залов и столы -> вкладка Тарифицируемые устройства), сколько игровых дорожек в Брансвик (как настроить тарифицируемые устройства читайте в статье Настройка работы с боулингом AMF. В свойствах тарифицируемого устройства необходимо заполнить следующие поля: "номер дорожки"=номеру дорожки в Брансвике, "Тариф" - выбрать тариф (тариф должен быть с детализацией, справочник Меню -> Тарифы).
Настройка brunswick.ini
[Config]
Address = <IP>:<порт>, где <IP> – адрес компьютера, на котором установлен кассовый сервер, <порт> – порт прописанный в свойствах XML-интерфейса!
TimerInterval = 1 – периодичность опроса базы Brunswick Vector (в секундах)
StartScanDelta = 86400 - ограничение периода, за который будут запрашиваться данные после старта сервиса VectorBrunswick.exe (в секундах, по умолчанию 1 сутки)
[ADO]
ConnectionString = 'FILE NAME=C:\Program Files\Common Files\System\Ole DB\Data Links\brnsw.udl' – строка с параметрами соединения с базой данных brunswick (путь к файлу связи brnsw.udl)
ConnectionTimeout = 15 – таймаут на установление соединения (в сек, по умолчанию 15 сек)
CommandTimeout = 30 - таймаут на выполнение запроса (в сек, по умолчанию 30 сек)
Запуск VectorBrunswick.exe
Приложение может быть запущено как сервисом, так и обычным приложением. Подробнее о способах запуска смотрите страницу справочника "Общие настройки серверов".
Первый запуск следует производить с параметром /desktop.
При первом запуске приложения будет предложено ввести пароль для XML-интерфейса. Данный пароль должен совпадать с паролем, заданным для XML-интерфейса на менеджерской станции. Введенный пароль будет запомнен в файле brunswick.ini. В случае необходимости изменить введенный ранее пароль, нужно удалить из файла brunswick.ini ключ Password и перезапустить VectorBrunswick.exe.
Проверка настроек
После всех действий необходимо запустить утилиту BrunswickReaderTest.exe для проверки правильности настроек
Отправка закрытой транзакции из BrunswickVector в RKeeper
После закрытия дорожки в Brunswick, отправляем закрытую транзакцию на кассовый сервер RKeeper.
На кассе этот заказ будет отображаться отдельной строкой в чеке.
Решение проблем
Причины, почему может не работать сервис/интерфейс:
- если включен первый режим, надо убедиться, что правильно настроен файл связи brnsw.udl и в brunswick.ini правильно указан путь к этому файлу. Но самое важное, убедиться, что в БД Brunswick Vector есть процедуры usp_ReceiptSummaryInformation и usp_ReceiptRecordSummaryInformation- есть информация (не проверенная), что в некоторых версиях Brunswick Vector (или с какой-то определенной версии) данные процедуры отсутствуют (режим постоянного опроса БД из внешнего приложения может приводить к замедлению или даже отказу работы ПО). Проверить это не просто - доступа к БД компания Brunswick, как правило, не предоставляет - можно обратиться в их службу поддержки.
- если используется второй режим ( параметр TimerInterval = 0 , не заполнен или отсутствует), причина может быть в нерабочей или недоступной системе уведомлений. Для проверки интерфейса в первую очередь надо включить логирование - для этого на компьютере, где зарегистрирован интерфейс (VectorNotification.dll), прописываем в разделе реестра HKCU\Software\Resultatsystem\Viking2001 параметр LogLevel (тип REG_DWORD) - лог будет размещаться в директории C:\Brunswick\Log\Pos.log. Далее надо убедиться, что на компьютерах (или вообще в сети) не установлены файерволы, которые могут блокировать широковещательные пакеты (broadcast) - интерфейс использует UDP/IP, порт по умолчанию 30471
Рекомендуемые порядок проверки:
- включить второй режим (очистить значение параметра TimerInterval в branswick.ini)
- прописать в реестре параметр для логирования
- зарегистрировать интерфейс VectorNotification.dll на компьютере, где установлено ПО Brunswick Vector
- установить актуальную версию VectorBrunswick.exe на тот же компьютер, где установлено ПО Brunswick Vector
- настроить brunswick.ini на подключение к XML-интерфейсу кассового севера
- закрыть дорожку в Brunswick Vector
- убедиться, что были обращения к XML-интерфейсу (в интерфейсе кассового сервера закладка "Интерфейсы")
- убедиться, что создался файл C:\Brunswick\Log\Pos.log
Если после указанных действий связь не заработает, необходимо создать обращение в Сервис-деске, описать проблему и вложить лог Pos.log