Содержание

Введение

ПО "Персональная депозитно-дисконтная система" (далее ПДС) предназначено для ведения собственной базы персональных платежно-дисконтных карт и организации работы с различными элементами системы лояльности (скидки, бонусы, накопления и т.д.)

Как правило, ПДС устанавливается в качестве дополнения к системе R-Keeper, но может работать и как самостоятельное ПО.

Состав системы

В состав системы входят следующие обязательные приложения:

  • Сервер карт (CARDSERV) - основное приложение системы, управляет базой данных и  обеспечивает взаимодействие с клиентами ПДС
  • Редактор карт (PCARDS) - приложение для управления справочниками системы и получения базовой отчетности

Также в состав системы входят дополнительные (необязательные) модули:

  • Ретранслятор запросов (FARCARDS) - универсальный модуль, предназначенный для организации различных схем работы - в большинстве случаев используется независимо от основных модулей ПДС для организации связи со сторонними системами
  • Синхронизация серверов карт (SYNCARD) - приложение для синхронизации головной и локальных серверов карт в распределенной схеме ПДС
  • Импорт карт (CARDIMP) - приложение для пакетной загрузки карт в стандартном формате импорта (CSV)
  • Информация по карте (CARDINFO) - приложение для получения информации по карте
  • Обслуживание БД сервера карт (DATACUT) - приложение для уменьшения размера базы данных за счет компоновки старых транзакций

Примечание: Все модули ПДС устанавливаются и работают под управлением Windows

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

Для работы модуля "Редактор карт" (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/CARDSERV дистрибутив актуальной версии сервера карт
  • cоздать каталог, например UCS\PDS\CARDSERV и скопировать в него содержимое каталога \CARDSERV из дистрибутива
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z архив с библиотеками связи  и распаковать содержимое в рабочий каталог сервера карт

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

Для обновление версии сервера карт необходимо:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDSERV дистрибутив актуальной версии севера карт
  • скопировать утилиту Cardup.exe из подкаталога дистрибутива \UPGRADE в рабочий каталог сервера карт
  • остановить сервер карт
  • сделать резервную копию базы данных card.udb
  • запустить утилиту Cardup.exe и выполнить обновление БД
  • скопировать новую версию сервера карт Cardserv.exe из подкаталога дистрибутива \CARDSERV в рабочий каталог сервера карт

Примечание: При обновлении сервера карт рекомендуется также обновлять набор используемый библиотек связи, загрузить который можно с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z 

Настройка сервера карт

Все параметры сервера карт хранятся в конфигурационном файле CARDSERV.INI

По-умолчанию,  CARDSERV.INI содержит минимальный набор параметров, далее рассмотрены все возможные параметры и их описание:

[DB]                - секция параметров базы данных
File = card.udb     - файла базы данных сервера карт
DayBound = 4:00     - время границы суток - значение, которое сервер учитывает при проверке различных временных ограничений (срок действия карт, лимиты и т.д.), а также использует при построении отчетов

Примечание: Рекомендуется указывать значение времени суток, когда кассовый сервер уже закрыл день, а новая кассовая смена еще не открыта. Для предприятий, работающих круглосуточно, логично использовать астрономическую границу суток - 00: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
4 = RLocal           - поддержка локального протокола связи

Важно: Модуль связи RLOCAL.DLL был исключен из всех дистрибутивов (обнаружена проблема, см.  http://tracker.ucs.ru:8080/redmine/issues/47751#note-35) . Во всех рабочих конфигурациях, где используется модуль RLOCAL.DLL, рекомендуется заменить его на модуль RTCP.DLL (даже при локальных подключениях)

Примечание: Модули связи загружаются и инициализируются в том же порядке, как указаны в секции [LinkDLL]

Примечание: Рекомендуется в секции [LinkDLL] указывать только необходимые библиотеки связи. После запуска сервера требуется некоторое время (5-20 сек) для иницилизации всех подключаемых модулей связи

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

[RNetBios]           - секция параметров для модуля связи NETBIOS
Server = PCSERV      - уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт

[RNBOpen] - секция параметров для модуля связи RNBOPEN
Server = ASERV - уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт, используется ТОЛЬКО для подключения  кассовой системы R-Keeper v6

Примечание: Модули связи RNetBios и RNBOpen запускаются на всех номерах адаптеров NetBios, обнаруженных в ОС Windows. Более подробно о протоколе NetBios  и номерах адаптеров можно ознакомиться в статье http://support.ucs.ru/ru/node/5220

[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

Важно: В секции [LinkDLL] должна соблюдаться последовательная нумерация библиотек связи

Редактор карт

Назначение редактора карт

Редактор карт (PCARDS) является основным пользовательским модулем в составе ПО ПДС и предназначен для создания и управления базой карт (счетов). Также в модуле доступна базовая отчетность по системе ПДС.

Установка редактора карт

Установка редактора карт может быть выполнена на том же ПК, где находится сервер карт, либо на любом другом в пределах связи с сервером карт.

Важно: Для запуска редактора карт требуется подготовленный ключ защиты Novex Guardant II (USB)

Для установки редактора карт необходимо:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/PCARDS  дистрибутив, соотв. версии установленного сервера карт
  • создать каталог, например UCS\PDS\PCARDS и скопировать в него содержимое дистрибутива
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/OTHER/fr302.7z  архив c библиотеками поддержки FastReport и распаковать в рабочий каталог редактора карт
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z  архив с библиотеками связи и распаковать в рабочий каталог редактора карт
  • с сайта http://www.guardant.ru/support/download/drivers/ загрузить и установить подходящую версию драйвера ключа защиты
  • создать на рабочем столе ярлык "Редактор карт" для запуска приложения PCARDS.EXE

Настройка редактора карт

Конфигурация редактора карт хранится в файле RKEEPER.INI.

Примечение: Значения параметров в файле RKEEPER.INI регистронезависимы, за исключение параметров, в которых указываются NETBIOS-имена.

Пример конфигурационного файла:

[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, то этот символ обычно не вписывается.

Примечание: ID ключа определяется диагностической утилитой, входящей в состав драйвера Guardant (Панель управления\Драйверы Guardant)

Примечание: В каждой секции для библиотек связи может быть определено несколько групп параметров с различными значениями. Группа параметров определяется числом, которое указывается после имени параметра и может принимать значение от 1 до 16. Например, Server1  - 1-я группа, Server2 - 2-я группа и т.д. Более подробно об использовании групп параметров см. в разделе настройки менеджерской части RK6

[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
 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,, , Иванов Иван Иванович
1024, 01/01/2008, 2,1, 05/11/1980, А.Б.Сидоров, 1
1027, 12/03/2007, 2,  ,,Алексей Толстой, 4, 5000.00,222-22-22,,tolstoy@xaxa.su, Фирма "Солнышко"

Пакетное начисление средств

В приложении PCards есть возможность выполнять импорт операций начисления средств из текстового файла (CSV) установленного формата.

Операция импорта доступна в меню по правому клику мыши в режиме отображения счетов (Файл ⇒ Счета):

Рис. Операция импорта операций из текстового файла

Требования к текстовому файлу (соотв. требованиям к формату CSV)

  • кодировка файла ANSI (Windows)
  • каждая отдельная строка соответствует одной операции
  • в каждой строке несколько полей, разделенных запятыми
  • если запятая требуется в содержимом поля, поле надо заключить в двойные кавычки (например, "Зачисление дотации, ноябрь")
  • если в содержимом поля требуются кавычки, то все эти кавычки надо удвоить и всё поле надо заключить в кавычки, например, "Зачисление от компании ООО ""Ромашка"""

Описание полей для каждой записи файла:

1. Номер карты - число от 1 до 999999999
2. Сумма средств, может быть отрицательной
3. Описание операции  (опциональное поле)
 
Пример содержимого текстового файла для импорта операций:
 
1023, 550.00
1024, 1745.25, Доначисление за ноябрь
1027, 0.50, Автоматический бонус
4093, -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 interface"

Для того чтобы новый интерфейс стал активным, необходимо перезагрузить кассовый сервер. После перезапуска кассового сервера, доступность нового интерфейса можно посмотреть в его свойствах (при условии запуска кассового сервера с ключом /desktop)

Ретранслятор запросов 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 (v6 и v7), отчетный модуль RK6 (Report32.exe) и утилита 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.INI может потребоваться настройка параметров интерфейсной библиотеки - см. документацию, поставляемую с библиотекой

После запуска FARCARDS в режиме Type = 1 в графическом интерфейсе на закладке Server отображается статус подключенной интерфейсной библиотеки:

Рис. Ошибка при загрузке интерфейсной библиотеки

Рис. Интерфейсная библиотека загружена успешно

Запуск FARCARDS

Запуск FARCRDS возможен как в качестве приложения, так и в качестве службы (сервиса)

Примечание: Для запуска FARCARDS не требуется ключ защиты и/или лицензия

Примечание: При использовании режима Type =1 запуск FARCARDS может зависить от сторонних компонентов - см. требования к интерфейсной библиотеке

Режим запуска определяется ключем:

  • /DESKTOP      - запуск ретранслятора как приложения
  • /INSTALL        - установка ретранслятора в качестве службы (сервиса)
  • /UNINSTALL   - удаление установленной службы (сервиса) ретранслятора

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

После запуска в системном трее должна появиться иконка ретранслятора, при двойном клике на которую можно открыть графический интерфейс FARCARDS и проверить статус работы:

  • Вкладка "Server" - общие сведения
  • Вкладка "Chanels" - список подключившихся клиентов
  • Вкладка "DLL" - список библиотек связи с параметрами и состоянием. Если ретранслятор запущен как приложение, будет доступно Popup-меню для закрытия (Shutdown)

Примечание: При установке ретранслятора карт в ОС Windows 7 (и выше) и запуске в качестве службы,  в системном трее иконка отображаться не будет

Распределенная ПДС

Общая информация 

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

Возможные области применения:

  • сеть ресторанов с единой базой персональных карт
  • территориально разнесенная сеть точек общественного питания в пределах одного предприятия
  • выездные автономные точки питания с обслуживанием по персональным картам

Преимущества использования:

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

Примечание: Поддержка распределенной ПДС реализована с версии сервера карт CARDSERV 7.01

Схема работы

В конфигурации с распределенной ПДС всегда есть один головной (центральный) сервер карт и один или несколько локальных (подчиненных) серверов.

Головной сервер, как правило, находится в центральном офисе, а локальные сервера разнесены по удаленным объектам. Синхронизация между серверами осуществляется через протокол 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.

Важно: Редактировать данные с помощью редактора карт PCARDS можно только на серверах в режиме Одиночный или Головной. На Локальном и Промежуточном серверах возможен только просмотр данных и отчетов.

Примечание: Узнать, в каком режиме работает сервер карт, можно из приложения PCARDS - "Справка" \ "О программе" \ "Доступ"  - Полный, Головной, Нижний, Транзитный. Режим работы сервера также отображается на иконке сервера карт: H - Головной, L - Локальный

Недопустимые действия 

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

Выполняемые действия Следствие Способ разрешения
Копирование базы данных сервера карт из одного локального ресторана в другой и подключение их к одному (общему) Головному серверу Полная рассинхронизация данных!
  • Если требуется запустить новый ресторан, надо взять чистую (пустую) базу данных из дистрибутива
  • Если база данных поломалась, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива*
Если в локальном ресторане попробовать использовать непустую базу, которая не является Локальной, 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"

  • Если сломалась Головная база данных, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива*

*Примечание: Архивные копии базы данных CARD.UDB сервер карт создает автоматически один раз в сутки (см. примечание выше).

Установка SYNCARD

Перед установкой SYNCARD предполагается, что выполнены следующие условия:

  • в рабочей конфигурации уже имеется Головной или Одиночный сервер карт
  • между Локальным и Головным (Одиночным) серверами имеется связь по TCP/IP (например, VPN с возможностью подключения по 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 )

Примечание: Учитывая замечание относительно библиотеки RLOCAL.DLL, для связи SYNCARD и локального сервера карт необходимо использовать только RTcp.DLL, даже если оба сервера находятся на одном ПК.

Далее необходимо настроить основной конфигурационный файл 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 = 127.0.0.1          - IP-адрес для подключения к локальному серверу карт
Port1 = 4444                 - порт для подключения к локальному серверу карт                 

Client2 = SYNCARD            - уникальное имя клиента для подключения к головному серверу карт
Server2 = 192.168.0.1        - IP-адрес для подключения к головному серверу карт 
Port2 = 5555                 - порт для подключения к головному серверу карт

Запуск SYNCARD.EXE выполняется с ключами:

/INSTALL    - установка в качестве службы (рекомендуется)
/UNINSTALL  - удаление установленной службы
/DESKTOP    - запуск в качестве приложения

После первого запуска SYNCARD базы получат все необходимые метки автоматически и при наличии связи между серверами произойдет синхронизация данных.

Дополнительные приложения

CARDINFO - информация по карте

Приложение CARDINFO используется для получения основной информации по персональной карте, не запуская редактор карт и/или кассовую станцию.

Может использоваться совместно с редактором карт PCards или как отдельное приложение в составе ПДС, дополнительная лицензия или ключ защиты не требуется.

Примечание: С версии CARDINFO 1.10 поддерживается работа со считывателем карт (настройка аналогична PCARDS)

Использование совместно с PCards

Для совместного использования с редактором карт необходимо:

  • скопировать с фтп ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDINFO  дистрибутив актуальной версии приложения и распаковать его содержимое в рабочий каталог PCards
  • на рабочем столе создать ярлык для запуска приложения
  • при необходимости подключить считыватель карт, настройка аналогична PCARDS

Примечание: Приложение CARDINFO для поддержки считывателей карт использует те же драйвера, что и PCARDS - если PCARDS уже настроен на поддержку считывателя карт, дополнительная настройка SYNCARD не требуется.

Использование в качестве отдельного приложения

Для использования в качестве отдельного приложения в составе ПДС необходимо:

  • скопировать с фтп 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 - см. соотв. раздел в описании 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 - дата, до которой было произведено удаление транзакций
Важно: Приложение не позволяет удалять транзакции в БД за последние 90 дней.
 
Важно: При использовании распределенной ПДС (SYNCARD) перед удалением транзакций вcе базы данных дерева серверов должны быть синхронизированы (последняя синхронизация не более 90 дней назад).
 
Для использования приложения необходимо:
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/DATACUT  дистрибутив актуальной версии приложения
  • распаковать содержимое архива в рабочий каталог сервера карт CARDSERV
  • остановить сервер карт CARDSERV
  • запустить приложение и дождаться успешной обработки БД
  • запустить сервер карт CARDSERV и проверить работу