Установка и настройка системы ПДС
Введение
Программа Персональная дисконтная система (далее — ПДС) предназначена для ведения собственной базы персональных платежно-дисконтных карт и организации работы с различными элементами системы лояльности (скидки, бонусы, накопления и т.д.)
Как правило, ПДС устанавливается в качестве дополнения к системе R-Keeper, но может работать и как самостоятельное ПО.
Состав системы
В состав системы входят следующие обязательные приложения:
- Сервер карт (CARDSERV) - основное приложение системы, управляет базой данных и обеспечивает взаимодействие с клиентами ПДС
- Редактор карт (PCARDS) - приложение для управления справочниками системы и получения базовой отчетности
Также в состав системы входят дополнительные (необязательные) модули:
- Ретранслятор запросов (FARCARDS) - универсальный модуль, предназначенный для организации различных схем работы - в большинстве случаев используется независимо от основных модулей ПДС для организации связи со сторонними системами
- Синхронизация серверов карт (SYNCARD) - приложение для синхронизации головной и локальных серверов карт в распределенной схеме ПДС
- Импорт карт (CARDIMP) - приложение для пакетной загрузки карт в стандартном формате импорта (CSV)
- Информация по карте (CARDINFO) - приложение для получения информации по карте
- Обслуживание БД сервера карт (DATACUT) - приложение для уменьшения размера базы данных за счет компоновки старых транзакций
Лицензирование
Для работы модуля "Редактор карт" (PCARDS) требуется аппаратный ключ защиты Guardant Stealth II (USB), подготовленный специальным образом.
Дополнительное лицензирования ни со стороны ПДС, ни стороны R-Keeper не требуется.
Сервер карт (CARDSERV)
Назначение сервера карт
В функции сервера карт входит управление базой данных и обеспечение взаимодействия с клиентами системы ПДС (кассовая система или другое ПО, в том числе стороннее)
Состав сервера карт
Сервер карт состоит из следующих компонентов:
- База данных в формате UDB - card.udb
- Исполняемый файл сервера Cardserv.exe
- Конфигурационный файл сервера CARDSERV.INI
- Библиотеки связи (RTCP.DLL, RLOCAL.DLL, RNBOPEN.DLL и т.д.)
- Утилита для обновление базы данных до соотв. версии - Cardup.exe
Установка сервера карт
Для установки сервера карт необходимо:
- загрузить с FTP полную сборку ПДС ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/PDS.zip
- распаковать содержимое архива.
Архив содержит полностью рабочую сборку ПДС, не нужно ничего ставить дополнительно.
Обновление сервера карт
Для обновление версии сервера карт необходимо:
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDSERV дистрибутив актуальной версии севера карт
- скопировать утилиту Cardup.exe из подкаталога дистрибутива \UPGRADE в рабочий каталог сервера карт
- остановить сервер карт
- сделать резервную копию базы данных card.udb
- запустить утилиту Cardup.exe и выполнить обновление БД
- скопировать новую версию сервера карт Cardserv.exe из подкаталога дистрибутива \CARDSERV в рабочий каталог сервера карт
Настройка сервера карт
Все параметры сервера карт хранятся в конфигурационном файле CARDSERV.INI
По-умолчанию, CARDSERV.INI содержит минимальный набор параметров, далее рассмотрены все возможные параметры и их описание:
[DB] - секция параметров базы данных
File = card.udb - файла базы данных сервера карт
DayBound = 4:00 - время границы суток - значение, которое сервер учитывает при проверке различных временных ограничений (срок действия карт, лимиты и т.д.), а также использует при построении отчетов
Backup = - путь для сохранения автоматического бекапа базы CARD.UDB. Если не указан, будет выполняться в том же каталоге, где находится рабочая БД
Автоматический бекап выполняется раз в сутки, время выполнения не настраивается и регулируется сервером по внутренним правилам.
BackupCount = 2 - количество файлов автоматического бекапа, после достижения указанного значения файлы автоматически перезаписываются
WeekStart = 7 - параметр указывающий серверу карт день начала недели. Используется для карт с недельными ограничениями, может принимать след. значения: 1 - пн 2 - вт, 3 - ср, ... 7 - вск
Bonus = - если указать значение DISCOUNT, номер (идентификатор) бонуса карты будет равен номеру (идентификатору) ее скидки. Подробнее о данном параметре см. ниже
MinRest = - если указать сумму в этой настройке, то остаток денег на карте будет считаться нулевым, если он меньше этой суммы.
IgnoreStopDate = No - если = YES, то срок действия карт неограничен.
Log = 2 - Уровень лог-файла. 0 - редкие события. 1 - факты запросов. 2 - подробности некоторых запросов
[LinkDLL] - секция параметров поддержки библиотек связи
1 = RNetBios - поддержка канала связи через протокол NetBios
2 = RNBOpen - поддержка специального канала связи через протокол NetBios, используется только для кассовой системы R-Keeper v6
3 = RTcp - поддержка канала связи через протокол TCP/IP
Далее идут индивидуальные секции параметров для каждой библиотеки связи:
[RNetBios] ; секция параметров для модуля связи NETBIOS
Server = PCSERV ; уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт
[RNBOpen] ; секция параметров для модуля связи RNBOPEN
Server = ASERV ; уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт, используется ТОЛЬКО для подключения кассовой системы R-Keeper v6
[RTcp] ; секция параметров для модуля связи RTCP
Port = - порт TCP/IP для входящих подключение, любой уникальный свободный/открытый сетевой порт для связи через него с сервером карт. Обычно от 3000 до 5000.
[RLocal] ; секция параметров для модуля связи RLOCAL
Port = 0 - порт для локальных подключений, можно указать произвольное число
Особенности использования модулей связи
- При подключении модулей связи, использующих протокол NetBios (RNBOPEN.DLL и NETBIOS.DLL), следует учитывать, что модули будут загружаться на всех номерах адаптеров NetBIOS, найденных в ОС Windows - это приводит к некоторым задержкам при запуске сервера карт. Если сервер карт настроен на одновременную поддержку различных модулей связи, рекомендуется в секции [LinkDLL] указывать модули с поддержкой NetBIOS в конце списка
- При установке сервера карт на 64-х битную ОС модули связи с поддержкой NetBIOS будут работать некорректно - модуль NETBIOS можно заменить модулями RTCP и/или RLOCAL, для модуля RNBOPEN замены нет, но начиная с версии кассы 6.102 есть возможность настроить альтернативное подключение по протоколу TCP/IP, использую модуль связи RTCP
Таким образом, при установке сервера карт на 64-х битную версии ОС Windows, целесообразно использовать всего два модуля связи: RTCP (для всех удаленных подключений, включая кассу и кассовый сервер) и RLOCAL (для всех локальных подключений)
Запуск сервера карт
Запуск CARDSERV.EXE возможен как в качестве приложения, так и в качестве службы (сервиса)
Для запуска сервера карт не требуется сторонних компонентов, включая BDE. Также для запуска сервера карт не требуется ключ защиты и/или лицензия
Режим запуска определяется ключем:
- /DESKTOP - запуск сервера как приложения
- /INSTALL - установка сервера в качестве службы (сервиса)
- /UNINSTALL - удаление установленной службы (сервиса) сервера
На одном компьютере может быть одновременно запущено несколько серверов с разными настройками и базами
После запуска в системном трее должна появиться иконка работающего сервера карт, при двойном клике на которую можно открыть графический интерфейс сервера и проверить статус работы:
- Вкладка "Database" - общие сведения
- Вкладка "Connects" - список подключившихся клиентов
- Вкладка "Protocols" - список библиотек связи с параметрами и состоянием. Если сервер запущен как приложение, будет доступно Popup-меню для закрытия (Shutdown)
При установке сервера карт в ОС Windows 7 (и выше) и запуске в качестве службы, в системном трее иконка отображаться не будет
Параметр Bonus=DISCOUNT
Для более четкого понимания параметра, описание вынесено в отдельный раздел.
В системе ПДС для бонусов не реализована поддержка уровней в зависимости от потрат владельца карты, тогда как для скидок такой функционал есть (составные скидки) - использование параметра Bonus=DISCOUNT позволяет включить механизм поддержки составных бонусов
Схема работы:
- в модуле "Редактор" (RK6) или в менеджерской станции RK7 создаются бонусы, необходимые для формирования уровней
- в модуле "Редактор" (RK6) или в менеджерской станции RK7 создаются виртуальные (или реальные - в завимости от ситуации) скидки с кодами, в точности соотв. кодам бонусов, созданных на предыдущем этапе
- в редакторе карт создаются составные скидки по тем правилам, по которым должны работать будущие составные бонусы, при этом в качестве скидок для каждой составной скидки применяются специально созданные скидки
- в редакторе карт для карт назначаются составные скидки
Особенности использования:
- сервер карт всегда будет возвращать и код скидки и код бонуса, которые будут одинаковыми при использовании параметра Bonus=DISCOUNT - таким образом теряется гибкость в управлении скидками
- отключить использование скидок по карте нельзя - если скидка не нужна, необходимо сделать ее нулевой
Пример минимальной конфигурации сервера
В минимальной конфигурации (поддержка только модуля связи RTCP) CARDSERV.INI выглядит следующим образом:
[DB]
File = card.udb
DayBound = 4:00
Backup =
IgnoreStopDat e= No
BackupCount = 2
WeekStart = 7
Log = 2
[LinkDLL]
1 = RTcp
[RTcp]
Port = 3456
Пример содержимого каталога \CARDSERV после установки:
CARDSERV.EXE - исполняемый файл сервера карт
CARDSERV.INI - конфигурационный файл сервера карт
CARD.UDB - база данных сервера карт
RTCP.DLL - модуль связи с использованием TCP-протокола
Пример конфигурации сервера для подключения по разным портам TCP/IP
В некоторых случаях может потребоваться подключение к серверу карт по нескольких различным номерам портов.
Т.к. в параметрах библиотеки Rtcp.dll можно указать только одно значение порта, применяем "обходное" решение - библиотеку Rtcp.dll копируем в необходимом кол-ве под разными именами, например Rtcp1.dll, Rtcp2.dll и настраиваем сооотв. образом CARDSERV.IN:
....
[LinkDLL]
1 = RTcp1
2 = RTcp2
3 = RTcp3
[RTcp1]
Port = 1111
[RTcp2]
Port = 2222
[RTcp3]
Port = 3333
Редактор карт
Назначение редактора карт
Редактор карт (PCARDS) является основным пользовательским модулем в составе ПО ПДС и предназначен для создания и управления базой карт (счетов). Также в модуле доступна базовая отчетность по системе ПДС.
- Логин по умолчанию: ucs. Если подходит, попробуйте 1
- Пароль по умолчанию: ucs. Если подходит, попробуйте 1
Установка редактора карт
Установка редактора карт может быть выполнена на том же ПК, где находится сервер карт, либо на любом другом в пределах связи с сервером карт.
Для запуска редактора карт требуется лицензионный ключ защиты Novex Guardant II
В скачанном ранее архиве есть редактор карт. Для его запуска откройте приложение PCARDS.EXE
Настройка редактора карт
Конфигурация редактора карт хранится в файле RKEEPER.INI.
Пример конфигурационного файла:
[Common] - основной раздел.
Alias1 = d:\RK6\DB - путь к таблицам справочников менеджерской базы RK6 .
Alias2 = d:\RK6\DB - путь к накопительной базе RK6 (ARK6.UDB).
EditFRF = YES - вкл/выкл дизайнер печатных форм отчетов Fast Report.
Language=.RUS - локализация. Язык по умолчанию - RUS/ENG.
[PCards] - раздел редактора карт.
CSLinkDLL = RTcp - указание используемой библиотеки связи редактора карт для связи с сервером карт. Библиотека указывается баз расширения.
CSLinkGate = 1 - номер клиента DLL, потом добавлять эту цифру в параметры DLL.
DBF = ANSI - кодировка в DBF-файлах при экспорте данных из CARD.UDB. - ANSI или OEM.
SaveLogin=YES - сохранять имя пользователя в окне входа в программу.
Login=ucs - пользователь по умолчанию.
Birthday=0 - Режим построения отчета по дням рождений. 0 - учитывается заданный год. 1 - не учитывается заданный год.
ShowExport=1 - Показывать пункт "Экспорт" в счетах - 1 или нет - 0.
Font = Antica - Можно указать используемый шрифт.
Guardant = $232D7F11 - Можно указать ключ с лицензией. предваряется значком $. Если в конце номера есть - h, то этот символ обычно не вписывается.
[RTcp] ; раздел настроек выбранного модуля связи.
Client1 = Person_Cards ; любая строка, уникальная среди клиентов сервера по TCP.
Server1 = 127.0.0.1 ; IP-адрес сервера - можно узнать, запустив на сервере из командной строки ipconfig /all (входит в состав Windows).
Port1 = 3456 ; номер порта, указанный на сервере CARDSERV в CARDSERV.INI.
Пример настройки подключения Редактора карт к Серверу карт через NETBIOS:
............
[PCards]
CSLinkDLL = RNetbios ; используемый модуль связи
CSLinkGate = 1
[RNetbios]
Server1 = PCSERV ; NETBIOS-имя сервера карт
Client1 = PCARDS_CLIENT ; NETBIOS-имя клиента, должно быть уникальным в сети.
Adapter1 = 0 ; если не указывать, возьмет первый существующий.
Импорт карт из текстового файла
В приложении PCards есть возможность выполнять импорт списка карт из текстового файла (CSV) установленного формата.
Операция импорта доступна в меню по правому клику мыши в режиме отображения счетов (Файл ⇒ Счета):
Рис. Операция импорта карт из текстового файла |
Требования к текстовому файлу — соответствие формату CSV
- кодировка файла ANSI (Windows)
- каждая отдельная строка соответствует одной карте
- в каждой строке несколько полей, разделенных запятыми
если запятая требуется в содержимом поля, поле надо заключить в двойные кавычки (например, "ул. Мира, д. 10")
если в содержимом поля требуются кавычки, то все эти кавычки надо удвоить и всё поле надо заключить в кавычки. Например, название подразделения ООО "Ромашка" должно быть указано так "ООО ""Ромашка"""
Как работает процедура импорта:
- если карты еще нет на сервере, для нее создается новый счет
- если счет с такой картой уже есть, его свойства изменяются
Описание полей для каждой записи файла:
1. Номер карты
2. Срок действия карты - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS. Если ОС русская, то формат должен быть: ДД.ММ.ГГГГ, например: 12.08.2020.
3. Номер скидки - число от 0 до 99 (опциональное поле)
4. Номер бонуса - число от 0 до 99 (опциональное поле)
5. День рождения - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS (опциональное поле)
6. Имя владельца карты — Кавычек быть не должно!
7. Тип карты ( опциональное поле , по умолчанию 0):
0 - ручное пополнение без ограничения оплат
1 - автоматическое пополнение без ограничения оплат
2 - автоматическое пополнение с лимитом оплат на один день
3 - автоматическое пополнение с лимитом оплат на неделю
4 - автоматическое пополнение с лимитом оплат на месяц
5 - ручное пополнение с лимитом оплат на один день
6 - ручное пополнение с лимитом оплат на неделю
7 - ручное пополнение с лимитом оплат на месяц
8. Сумма лимита оплат (опциональное поле)
9. Телефон первый (опциональное поле)
10. Телефон второй (опциональное поле)
11. E-mail (опциональное поле)
12. Название подразделения. (опциональное поле). В этом поле важен регистр и не должно быть кавычек. Подразделение должно существовать.
Если название не указано либо указанное подразделение не найдено, новый счет создается в текущем, а если счет уже существует, его подразделение не меняется
Если счет уже есть и находится в другом подразделении, он переносится в указанное подразделение, если оно существует
13. Тип ограничения скидки ( опциональное поле , по умолчанию 0):
0 - без ограничений
2 - лимит скидки на один день
3 - лимит скидки на неделю
4 - лимит скидки на месяц
14. Сумма лимита скидки (опциональное поле)
15. Название дисконтного уровня. Используется, если поле 3 (номер скидки) пустое (опциональное поле)
16. Сумма кредита для карт с ручным пополнением (опциональное поле)
17. Флаг "Изъять карту": 0-снять, 1-выставить, пусто - не менять (опциональное поле)
18. Адрес (опциональное поле)
19. Дата выдачи карты - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS (опциональное поле, с версии 3.27.02 )
Пример содержимого текстового файла для импорта карт:
1023,31.12.2007,5,10,02.02.2002,Иванов Иван Иванович 1024,01.01.2008,2,1,05.11.1980,А.Б.Сидоров,1 1027,12.03.2007,2,,,Алексей Толстой,4,5000,222-22-22,,tolstoy@test.su,Тест 2,17.08.2020,10,,05.03.1970,В.Я. Бирюков,,,,biryukov@mail.ru,Мое подразделение
Пакетное начисление средств
В приложении PCards есть возможность выполнять импорт операций начисления средств из текстового файла (CSV) установленного формата.
Операция импорта доступна в меню по правому клику мыши в режиме отображения счетов (Файл ⇒ Счета):
Рис. Операция импорта операций из текстового файла |
Требования к текстовому файлу — соответствие формату CSV
- кодировка файла ANSI (Windows)
- каждая отдельная строка соответствует одной операции
- в каждой строке несколько полей, разделенных запятыми
- если запятая требуется в содержимом поля, поле надо заключить в двойные кавычки (например, "Зачисление дотации, ноябрь")
- если в содержимом поля требуются кавычки, то все эти кавычки надо удвоить и всё поле надо заключить в кавычки, например, "Зачисление от компании ООО ""Ромашка"""
Описание полей для каждой записи файла:
1. Номер карты - число от 1 до 999999999
2. Сумма средств, может быть отрицательной
3. Описание операции (опциональное поле)
Пример содержимого текстового файла для импорта операций:
1023, 550.00 1024, 1745.25, Доначисление за ноябрь 1027, 0.50, Автоматический бонус 2, -25, Штраф за разбитую посуду
Подключение считывателя карт
Для более удобной работы с картами в приложении PCARDS можно подключить внешний считыватель, например:
- считыватель магнитных карт
- считыватель бесконтактных карт
- сканер штрих-кодов
Для подключения считывающего устройства требуется специальный драйвер, поддерживающий работу с данной моделью считывателя.
Общий список драйверов можно посмотреть на фтп ftp://ftp.ucs.ru/r-keeper/versions/COM_READ. В каждом каталоге для конкретного устройства есть несколько подкаталогов \CARDREAD, \COMCARD, WINCAS и т..д - в подкаталоге \CARDREAD находятся драйвера для поддержки данной модели считывателя в приложении PCARDS
Для установки драйвера необходимо:
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/COM_READ требуемый драйвер
- распаковать содержимое архива в рабочий каталог PCARDS
- настроить конфигурационный файл CardRead.ini (описание параметров драйвера см. в файле README.TXT)
Пример конфигурационного файла CardRead.ini для считывателя СРЧ-125 (/COM_READ/RFIDUCS3/CARDREAD):
[Options]
Port=COM1 - название COM-порта
Bits=28 - кол-во используемых бит из номера карты 16..40
Mode=0 - 0-"длинный" номер c карты, 1-"составной" номер
Универсальный драйвер из каталога ftp://ftp.ucs.ru/r-keeper/versions/COM_READ/STANDARD/CARDREAD поддерживает работу с любым считывателем, который подключается в COM-порт (или любой другой интерфейс, драйвер которого позволяет эмулировать работу через виртуальный COM-порт) и отправляет считанные данные напрямую в порт.
В редакторе карт PCARDS поддержка считывателя отображается специальным изображением - считывание карты поддерживается в режиме редактирования (создания) счета и в режиме поиска карты:
Рис. Считывание карты в режиме редактирования счета | Рис. Считывание карты в режиме поиска |
Настройки связи с r_keeper_7
Для работы связки ПДС и r_keeper_7 необходимо добавить на кассовый сервер интерфейс, через который кассовая станция будет получать информацию по карте клиента
Для этого выбираем нужный кассовый сервер, переходим во вкладку "Устройства" и после нажатия правой кнопкой мыши выбираем "Список драйверов". Находим драйвер "PDS interface" и переносим во вкладку "Устройства". Далее необходимо прописать уникальное имя в строке "PDS Server name".
При необходимости можно заполнить или настроить остальные параметры интерфейса:
Параметр | Описание | Значение по умолчанию |
---|---|---|
PDS Server Name | Сетевое имя PDS-сервера | |
Currency Rate Class Code | Код класса ставок валюты ПДС | 1 - класс национальной валюты |
Tax Code | Код налога | 1 |
Call Timeout | Таймаут обращения к серверу ПДС в секундах | 120 |
Maximal Discount Value | Интерпретация нулевого значения лимита скидки, возвращаемого сервером карт:
| Discount limit spent totally |
Defaulter Type Code as | Интерпретация кода неплательщика:
| Defaulter type code |
Look Up Card By Mail Addr | Настройка перекодировки строковых идентификаторов карты:
| No |
Mail Addr Type Kind | Тип перекодировки кода карты (1 - email) | 1 |
Pass All Receipts XML data | Условие отправки данных по чекам:
| By script |
Authorize before transaction | Требуется ли дополнительный вызов авторизации карты перед проведением транзакции:
| Compatible |
Pass All Bills XML data | Условие отправки данных по пречека:
| No |
После этого необходимо привязать данный интерфейс к логическому. Для этого открываем вкладку "Сервис - Интерфейсы" и создаем копию предустановленного интерфейса "Персональная дисконтная система" и в разделе файлы библиотек выбираем ранее созданный "PDS interface"
Для того чтобы новый интерфейс стал активным, необходимо перезагрузить кассовый сервер. После перезапуска кассового сервера, доступность нового интерфейса можно посмотреть в его свойствах (при условии запуска кассового сервера с ключом /desktop)
Настройка MCR алгоритма
Если вы хотите проверить работу ПДС в действии, но карты для проверки нет — можно проверить работу с помощью ввода с клавиатуры.
- Создайте MCR-алгоритм типа обработка по маске
- В поле Объект укажите привязанный ранее интерфейс. В нашем случае это ПДС
- В поле Типы устройств выберите:
- Клавиатура
- Магнитная карта
- В поле Маска обработки укажите маску. В нашем случае это 4 цифры — iiii
- В поле Область выберите Интерфейс
- Активируйте алгоритм и сохраните
Запустите кассу и создайте заказ.
Нажмите кнопку Ввод с клавиатуры и введите номер существующей карты в соответствие с маской обработки.
Если сервер запущен, карта существует и не просрочена — на экране появится информация о ней.
Для активации скидки или бонуса нажмите на картинку.
Ретранслятор запросов FARCARDS
Приложение FARCARDS является ретранслятором - оно принимает запросы от клиентов (например, от кассовой системы) и передает эти запросы либо к серверу персональных карт (CARDSERV) либо во внешнюю (стороннюю систему), а также возвращает клиентам ответы от сервера карт или внешней системы.
Особенность FARCARDS заключается в отсутствии каких-либо встроенных механизмов хранения информации о персональных картах.
Взаимодействие с внешней системой обеспечивается специальной интерфейсной библиотекой, реализованной согласно спецификации FARCARDS.
Установка FARCARDS
Установка выполняется по аналогии с установкой сервера карт:
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/FARCARDS дистрибутив актуальной версии ретранслятора
- создать каталог, например UCS\PDS\FARCARDS и скопировать в него содержимое дистрибутива
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z архив с библиотеками связи и распаковать содержимое архива в рабочий каталог FARCARDS
Настройка FARCARDS
Параметры FARCARDS хранятся в конфигурационном файле FARCARDS.INI.
Секция общих параметров:
[FarServer]
Type = 0 ; режим работы ретранслятора, см. ниже
DLL = RTcp ; наименование библиотеки связи для подключения к CardServ либо библиотеки для связи с внешней системой
; Примечание: в режиме Type=0 библиотека RTcp не может присутствовать в секции [LinkDLL]. При запуске FARCARDS проверяет эту ситуацию и при необходимости автоматически корректирует FARCARDS.INI
Log = 0 ; уровеень детализации лог-файла (0..3)
Gate = 1 ; номер параметров, используется в секции параметров библиотеки, указанной в параметре DLL
CloseMins = 5 ; таймаут отключения от CardServ после отключения последнего клиента (мин), 0 - отключается сразу.
; Секция для перечисления библиотек связи
[LinkDLL]
1 = RNBOpen
2 = RLocal
3 = pds_netk
; Секции с параметрами библиотек связи
[RTcp]
Client1 = Remote Resto
Server1 = 127.0.0.1
Port1 = 2222
[RNBOpen]
Server = AServ
[RLocal]
Port = 1
[pds_netk]
NetServerName=FarCards
ininame=netk.ini
В макетах печати есть бэнд "Субсчета", в котором можно выводить всю доступную информацию по привязанным счетам к карте. Если там нет потрат, то их никак не увидеть.
За отображение потрат в окне "Информация о клиенте" отвечают параметры:
HasUnitInfo=1
Show_AccountTypes=1
Далее укажите в Show_AccountTypes ID счета потрат, которые можно увидеть в конфигураторе
Режимы работы FARCARDS
FARCARDS может работать в двух режимах, которые определяются значение параметра Type в секции [FarServer]
Режим Type = 0
В этом режиме FARCARDS подключается к серверу карт CARDSERV и передает ему все запросы клиентов (например, кассовых серверов) и возвращает ответы.
Фактически этот режим утратил актуальность в связи с появлением более функциональной конфигурации распределенной ПДС (SYNCARD), а также возможости кассового сервера R-Keeper v6 подключаться к серверу карт через протокол TCP/IP (начиная с версии 6.102)
Пример использования режима Type = 0:
- имеется ресторан с работающей системой персональных карт ПДС
- есть второй ресторан (территориально в другом месте), где необходимо использовать эти же карты
- при обеспечении связи по TCP/IP между ресторанами, во втором ресторане можно использовать FARCARDS в режиме Type = 0
- обращение к FARCARDS для кассовых серверов во втором ресторане будет "прозрачным", как к обычному CARDSERV, а FARCARDS по TCP/IP будет связываться с сервером карт в первом ресторане и ретранслировать весь обмен информацией
- таким образом, FARCARS выступит в качестве промежуточного звена между кассовыми серверами и сервером карт:
RKCLIENT ⇔ RKSERVER ⇔ FARCARDS ⇔ LAN\WAN ⇔ CARDSERV
Пример настройки FARCARDS.INI для режима Type = 0:
[FarServer]
Type = 0
DLL = RTcp ; библиотека для связи с CARDSERV
Log = 0
Gate = 1
CloseMins = 5
; Секция для перечисления библиотек связи
[LinkDLL]
1 = RNBOpen
2 = RLocal
3 = pds_netk
; Секция параметров для связи с удаленным сервером карт:
[RTcp]
Client1 = Дальний Ресторан ; любое уникальное название клиента FARCARDS
Server1 = 192.168.0.99 ; IP-адрес удаленного сервера кар
Port1 = 3456 ; порт удаленного сервера карт для подключение по TCP/IP
; секции с параметрами библиотек связи
[RNBOpen]
Server = AServ
[RLocal]
Port = 1
[pds_netk]
NetServerName=FarCards (имя PDS Server name - интерфейса добавленного на кассовый сервер)
ininame=netk.ini
После запуска FARCARDS в режиме Type = 0 в графическом интерфейсе на закладке Server отображается статус подключения к серверу карт:
Рис. Ошибка при подключении к серверу карт | Рис. Подключение к серверу карт установлено успешно |
При успешном подключении FARCARDS к серверу карт в графическом интерфейсе сервера карт на закладке "Connects" отобразится подключение (если параметр CloseMins отличен от нуля, иначе подключение будет кратковременным):
Рис. Статус подключения FARCARDS к удаленному серверу карт |
Режим Type = 1
В этом режиме FARCARDS передает запросы своих клиентов в подключаемую интерфейсную библиотеку и возвращает клиентам результат ее работы.
В режиме Type=1 FARCARDS выступает в роли сервера (аналогично CARDSERV), но логика работы с персональными картами реализуется в интерфейсной библиотеке (и/или во внешней системе, доступ к которой обеспечивает интерфейсная библиотека).
Данный режим, как правило, используется для связи кассовой системы R-Keeper со сторонним программным обеспечением.
Пример использования режима Type = 1:
- Заказчик имеет собственную информационную систему для управления персональными данными сотрудников и/или гостей (это может быть как простая система лояльности, так и система управления предприятием класса ERP)
- Заказчику необходимо использовать существующую систему совместно с кассовым ПО R-Keeper.
- Заказчику передается спецификация для разработки интерфейсной библиотеки (Extdll.txt) и дистрибутив FARCARDS
В режиме Type=1 клиентами FARCARDS могут быть только кассовая система r_keeper_7 и утилита CARDINFO.
Кроме связи со сторонними системами, FARCARDS в режиме Type=1 используется для связи кассовой системы R-Keeper c другим ПО Компании ЮСИЭС:
- R-Keeper CRM - система управления стратегий взаимодействия с клиентами
- Shelter ПДС - дисконтная система на базе ПО Shelter
- Абонемент - универсальная система управления
- Премьера - система автоматизаци кинотеатров
Пример настройки FARCARDS.INI для режима Type = 1:
[FarServer]
Type = 1
DLL = ExtDLL29.dll ; название интерфейсной библиотеки
Gate = 1
Log = 3
XMLCP=1251 ; установка кодовой страницы для XML-данных
[LinkDLL]
1 = RTCP
2 = RNBOpen
3 = pds_netk
; секции с параметрами библиотек связи:
[RNBOpen]
Server = AServ
[RLocal]
Port = 1
[pds_netk]
NetServerName=FarCards
ininame=netk.ini
После запуска FARCARDS в режиме Type = 1 в графическом интерфейсе на закладке Server отображается статус подключенной интерфейсной библиотеки:
Ошибка при загрузке интерфейсной библиотеки | Интерфейсная библиотека загружена успешно |
Запуск FARCARDS
Запуск FARCRDS возможен как в качестве приложения, так и в качестве службы. Для запуска FARCARDS не требуется ключ защиты и/или лицензия
Режим запуска определяется ключем:
- /DESKTOP - запуск ретранслятора как приложения
- /INSTALL - установка ретранслятора в качестве службы. При установке ретранслятора карт в Windows 7 и выше в качестве службы, в системном трее иконка отображаться не будет
- /UNINSTALL - удаление установленной службы (сервиса) ретранслятора
На одном компьютере может быть одновременно запущено несколько ретрансляторов с разными настройками
После запуска в системном трее должна появиться иконка ретранслятора, при двойном клике на которую можно открыть графический интерфейс FARCARDS и проверить статус работы:
- Вкладка "Server" - общие сведения
- Вкладка "Chanels" - список подключившихся клиентов
- Вкладка "DLL" - список библиотек связи с параметрами и состоянием. Если ретранслятор запущен как приложение, будет доступно Popup-меню для закрытия (Shutdown)
Распределенная ПДС
Общая информация
Распределенная ПДС это вариант конфигурации стандартной ПДС для возможности автономной работы серверов карт и периодической синхронизации данных между серверами.
Возможные области применения:
- сеть ресторанов с единой базой персональных карт
- территориально разнесенная сеть точек общественного питания в пределах одного предприятия
- выездные автономные точки питания с обслуживанием по персональным картам
Преимущества использования:
- не требуется наличие постоянной связи между рестораном и головным сервером карт
- вся информация дублируется - в каждом удаленном ресторане фактически создается резервная копия головной базы, причем достаточно актуальная
- в случае поломки любой базы данных и восстановления ее из резервного архива, все изменения и транзакции, созданные с момента создания резервного архива, попадут в базу после синхронизации
Схема работы
В конфигурации с распределенной ПДС всегда есть один головной (центральный) сервер карт и один или несколько локальных (подчиненных) серверов.
Головной сервер, как правило, находится в центральном офисе, а локальные сервера разнесены по удаленным объектам. Синхронизация между серверами осуществляется через протокол TCP/IP, при этом не важно, как именно реализован сетевой канал - достаточное условие для синхронизации - возможность подключения к головному (или промежуточному) серверу по IP-адресу и порту.
Cтандартная схема работы:
Касса ⇔ LAN ⇔ Локальный CARDSERV ⇔ LAN ⇔ SYNCARD ⇔ WAN (INTERNET) ⇔ Головной CARDSERV
Дополнительно можно включать промежуточные сервера карт (в любом количестве), например:
Касса ⇔ LAN ⇔ Локальный CARDSERV ⇔ LAN ⇔ SYNCARD ⇔ WAN (Mobile 3G INTERNET) ⇔ Промежуточный CARDSERV ⇔ LAN ⇔ SYNCARD ⇔ WAN (ISP INTERNET) ⇔ Головной CARDSERV
Конфигурация распределенной ПДС
Конфигурация с распределенной ПДС включает в себя стандартные модули ПДС (сервер карт, редактор карт) и дополнительную утилиту SYNCARD для синхронизации серверов карт.
Сервер карт (CARDSERV) может работать в четырех режимах:
- Одиночный
- Головной
- Локальный
- Промежуточный (локальный+головной).
Режим работы сервера зависит от метки в базе данных CARD.UDB. Метка проставляются при первом подключении синхронизатора SYNCARD - если SYNCARD не используется, меток в базе нет (одиночный сервер).
Варианты преобразования меток:
- Одиночный сервер можно сделать Головным (в любой момент)
- Одиночный сервер можно сделать Локальным (подчиненным), только если его база данных пустая
- Локальный сервер можно сделать Промежуточным (т.е. локальным+головным)
- Головной сервер сделать Промежуточным нельзя .
Таким образом, наращивать дерево серверов можно по одному серверу, подключая его как Локальный к работающему Головному, Промежуточному либо к Локальному (тогда он станет Промежуточным) серверу.
При необходимости, к любому из серверов можно подключиться редактором карт PCARDS.
Недопустимые действия
В таблице ниже описаны недопустимые действия с базой данных сервера карт, последствия, к которым они приводят и способы их разрешения:
Выполняемые действия | Следствие | Способ разрешения |
Копирование базы данных сервера карт из одного локального ресторана в другой и подключение их к одному (общему) Головному серверу | Полная рассинхронизация данных! |
|
Если в локальном ресторане попробовать использовать непустую базу, которая не является Локальной, SYNCARD не станет с ней работать | Сообщение об ошибке: "Can not mark [Local] as Local DB because it is not empty" . |
|
Если в локальный ресторан скопировать пустую базу данных головного сервера, SYNCARD не станет с ней работать | Сообщение об ошибке: "Can not mark [Local] as Local DB because it is Head DB" |
|
Если на Головной сервер скопировать Локальную базу из ресторана, SYNCARD не станет с ней работать. Кроме того, редактор карт PCARDS не позволит редактировать данные в этой БД | Сообщение об ошибке: "Can not mark [Head] as Head DB because [Local] DB is not empty" |
|
Установка SYNCARD
Перед установкой SYNCARD предполагается, что выполнены следующие условия:
- в рабочей конфигурации уже имеется Головной или Одиночный сервер карт
- между Локальным и Головным (Одиночным) серверами имеется связь по TCP/IP (например, защищенные каналы с возможностью подключения по IP-адресу и порту к компьютеру, на котором запущен и работает Головной сервер)
Установка утилиты синхронизации SYNCARD, как правило, выполняется на том же ПК, где установлен или планируется к установке локальный сервер карт либо на другом ПК в той же локальной сети.
Для установки SYNCARD необходимо:
- установить локальный сервер карт, если сервер карт был установлен ранее и уже использовался, необходимо установить пустую базу CARD.UDB
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/SYNCARD дистрибутив актуальной версии SYNCAD (историю изменений версии можно проверить в файле HISTORY.TXT)
- распаковать содержимое архива, например в каталог \UCS\PDS\SYNCARD
- в этот же каталог скопировать библиотеку связи RTcp.DLL (сборка актуальных версий библиотек связи на FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z )
Далее необходимо настроить основной конфигурационный файл SYNCARD.INI:
[Options] - Секция общих параметров
Period = 10 - период синхронизации в минутах (через сколько минут после успешного обмена будет следующий сеанс связи)
[Local] - Секция настроек связи с Локальным сервером карт
DLL = RTcp - DLL для связи с локальным сервером карт
Gate = 1 - номер параметров DLL связи
[Head] - Секция настроек связи с Головным сервером карт
DLL = RTcp - DLL для связи с Головным сервером карт
Gate = 2 - номер параметров DLL связи
Modem = 0 - использование модема (более точно - установление связи через соединение Windows): 0 - не использовать, 1 - всегда использовать, 2 - использовать только при отсутствии прямой связи
TryLink = 1 - работает только при Modem = 2 - количество неудачных попыток прямой связи до начала дозвона через модем
[Modem] - Секция настроек модемной связи
PBEntry = 3GMobile - название соединения, созданное в Windows
User = - указание пользователя для аутентификации
Psw = - указание пароля для аутентификации
Domain = - указание домена для аутентификации
[Rtcp] - Секция параметров для библиотеки связи
Client1 = SYNCARD - уникальное имя клиента для подключения к головному серверу карт
Server1 = 192.168.0.1 - IP-адрес для подключения к головному серверу карт
Port1 = 5555 - порт для подключения к головному серверу карт
Client2 = SYNCARD - уникальное имя клиента для подключения к локальному серверу карт
Server2 = 127.0.0.1 - IP-адрес для подключения к локальному серверу карт
Port2 = 4444 - порт для подключения к локальному серверу карт
Запуск SYNCARD.EXE выполняется с ключами:
/INSTALL - установка в качестве службы (рекомендуется)
/UNINSTALL - удаление установленной службы
/DESKTOP - запуск в качестве приложения
После первого запуска SYNCARD базы получат все необходимые метки автоматически и при наличии связи между серверами произойдет синхронизация данных.
Дополнительные приложения
CARDINFO - информация по карте
Приложение CARDINFO используется для получения основной информации по персональной карте, не запуская редактор карт и/или кассовую станцию.
Может использоваться совместно с редактором карт PCards или как отдельное приложение в составе ПДС, дополнительная лицензия или ключ защиты не требуется.
Использование совместно с PCards
Для совместного использования с редактором карт необходимо:
- скопировать с фтп ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDINFO дистрибутив актуальной версии приложения и распаковать его содержимое в рабочий каталог PCards
- на рабочем столе создать ярлык для запуска приложения
- при необходимости подключить считыватель карт, настройка аналогична PCARDS
Использование в качестве отдельного приложения
Для использования в качестве отдельного приложения в составе ПДС необходимо:
- скопировать с фтп ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDINFO дистрибутив актуальной версии приложения
- распаковать содержимое архива, например в каталог \UCS\PDS\CARDINFO
- скопировать в рабочий каталог приложения библиотеку связи - рекомендуется использовать RTCP.DLL
- если необходимо отображать название скидок, скопировать в рабочий каталог приложения соответствующую библиотеку PCGET.DLL и библиотеки, необходимые для ее работы (см. описание настройки PCARDS)
- создать или скопировать файл RKEEPER.INI и настроить параметры (аналогично PCARDS):
[PCards]
CSLinkDLL = RTcp - имя библиотеки связи
CSLinkGate = 1 - номер клиента (добавляется к параметрам библиотеки связи)
[RTCP]
Client1 = CARDINFO - уникальное имя клиентв для подключения к серверу карт
Server1 = 127.0.0.1 - IP-адрес сервера карт
Port1 = 3030 - TCP-порт для подключения к серверу карт
- на рабочем столе создать ярлык для запуска приложения
- при необходимости подключить считыватель карт, настройка аналогична PCARDS
Импорт списка карт
Приложение CARDIMP используется для загрузки на сервер карт списка карт из текстового файла установленного формата.
Формат текстового файла в точности соотв. формату файла для импорта списка карт в приложении PCards
Для установки CARDIMP необходимо:
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDIMP дистрибутив актуальной версии приложения
- распаковать содержимое архива, например в каталог \UCS\PDS\CARDIMP
- скопировать в рабочий каталог приложения библиотеку связи - рекомендуется использовать RTCP.DLL
- создать файл CARDIMP.INI и настроить параметры :
[Options]
LinkDLL = RTcp - имя библиотеки связи
[RTcp]
Client1 = - уникальное имя клиента для подключения к серверу карт
Server1 = - IP-адрес сервера карт
Port1 = - TCP-порт для подключения к серверу карт
Для запуска приложения не требуется ключ защиты и/или дополнительная лицензия.
Приложение не имеет интерфейса пользователя и запускается из консоли (командной строки) с указанием параметров:
Cardimp.exe Login Password FileName
где
- Login - имя пользователя для авторизации на сервере карт
- Password - пароль пользователя для авторизации на сервера карт
- FileName - имя импортируемого файла со списком карт
Обслуживание базы данных
Если файл базы данных сервера карт (CARD.UDB) слишком большой, с помощью приложения DATACUT можно скомпоновать старые транзакции, по которым не нужны детальные отчеты.
Принцип работы приложения:
- транзакции в удаляемом периоде, изменяющие остаток средств, будут суммированы в одну транзакцию для каждого счета
- остальные транзакции этого периода будут удалены
- вся остальная информация в БД останется без изменений
после создания новой БД, старая БД не удаляется, а переименовывается в файл вида BEFORE_CUT_yyyy-mm-dd, где yyyy-mm-dd - дата, до которой было произведено удаление транзакций
Для использования приложения необходимо:
- загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/DATACUT дистрибутив актуальной версии приложения
- распаковать содержимое архива в рабочий каталог сервера карт CARDSERV
- остановить сервер карт CARDSERV
- запустить приложение и дождаться успешной обработки БД
- запустить сервер карт CARDSERV и проверить работу