Настройка связи Plugin <-> Сервер функции отчетов <-> Common server

Плагин служит для формирования, отображения и рассылки отчетов (web-отчетов).

Плагин запрашивает информацию, необходимую для отчетов, у сервера функции отчетов через Common Server.

Рис. 1 – Схема взаимодействия Plugin и сервера функции отчетов

Плагин должен находиться в папке «Plugins». Для его работы необходимо, чтобы Common Server и сервер функции отчетов были настроены и запущены.

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

Примечание: плагин хранит всю информацию в БД SQL, и если создается новая БД, то остаются только предустановленные элементы. Настройки рассылки, календарь рассылки, отчеты для рассылки, получатели рассылки и внешние хранилища, расписания придется создавать заново.

Вход в менеджерскую RK7 для работы с плагином должен производиться НЕ под дилерской учетной записью.

Для настройки работы плагина в файле SchRepPluginClient.ini делаем следующее (см. рис. 2):

Рис. 2 – Настройки SchRepPluginClient.ini

- в строке «Url» - указываем адрес Common server;

- в строке «fs_guid» - указываем i_guid Feature Server;

- в строке «ConnectTimeout» - указываем таймаут на установленные соединения;

- в строке «ReceiveTimeout» - указываем таймаут, в течение которого объект будет ожидать получение данных;

- в строке «SendTimeout» - указываем таймаут, в течение которого объект будет ожидать успешного завершения отправки данных. Информация по таймаутам не является обязательной для заполнения.

Настройка рассылки отчетов

Для создания новой рассылки на электронную почту делаем следующее:

- Для активации рассылки в ini-файле FS в секции [FS_Mailing ]установить параметр Mailing=1 (см. рис. 2а);

- Задаем настройки рассылки (задаем почтовый ящик отправителя);

- Создаем календарь рассылки (расписание, по которому будет осуществляться рассылка);

- Создаем новый отчет для рассылки (указываем пользователя, которому будет направлен отчет, календарь рассылки, и непосредственно отчет, который будет получать пользователь).

Для создания новой рассылки на электронное хранилище WebDav делаем следующее:

 - Для активации рассылки в ini-файле FS в секции [FS_Mailing ]установить параметр Mailing=1 (см. рис. 2а);

Задаем настройки рассылки (задаем почтовый ящик отправителя);

- Создаем календарь рассылки (расписание, по которому будет осуществляться рассылка);

- Создаем новую группу внешних хранилищ;

- Создаем новый отчет для рассылки (указываем пользователя, которому будет направлен отчет, календарь рассылки, и непосредственно отчет, который будет получать пользователь).

Рис. 2а - Пример настройки ini-файла FS

Настройка рассылки на электронную почту

Настройка рассылки

Для настройки рассылки входим в меню «Расширения»-«Настройка рассылки» (см. рис. 3). Вводим хост, порт, почту отправителя, пароль и имя отправителя, от которого будут отправляться отчеты (см. рис. 4).

Рис. 3 – Путь к справочнику «Настройка рассылки»

Рис. 4 – Настройка рассылки

Создание календаря рассылки

Для создания календаря рассылки входим в меню «Расширения»-«Календарь рассылки» (см. рис. 5). В левой части окна правой кнопкой мыши вызываем контекстное меню, выбираем пункт «Создать новый календарь рассылки» (см. рис. 6).

Рис. 5 – Путь к справочнику «Календарь рассылки»

Рис. 6 – Создание нового календаря рассылки

Правой кнопкой мыши на созданном календаре рассылки вызываем контекстное меню, выбираем пункт «Свойства». Вводим название, альтернативное название календаря, делаем статус «Активный», сохраняем (см. рис. 7). Строки «Код» и «GUID» заполнятся автоматически.

Рис. 7 – Свойства календаря рассылки

В поле «Детализация календаря рассылки» правой кнопкой мыши вызываем контекстное меню, выбираем «Создать новую детализацию рассылки» (см. рис. 8). 

Рис.  8 - Создание новой детализации календаря рассылки

В свойствах детализации рассылки, в зоне «Главное» указываем название и, если требуется, альтернативное название детализации, устанавливаем статус «Активный» (см. рис. 9).В зоне «Настройки» вводим дату начала и окончания рассылки (ежедневно в этот период будет совершаться рассылка). Устанавливаем, по каким дням недели необходима рассылка (в том случае, если дни недели не будут указаны, рассылка будет производиться ежедневно). В строке «Событие» выбираем событие, которое будет являться стартом для рассылки. В строке «Количество» указываем, сколько отчетов ежедневно хотим получать. В строке «Интервал» указываем промежуток времени (в минутах), через который хотим получать отчеты (нужно помнить, что на формирование отчета требуется определенное время, поэтому сообщение с отчетом может задержаться на несколько минут от назначенного времени). В том случае, если интервал равен нулю, в строке «Количество» автоматически будет установлена единица. Для получения рассылки в последний день месяца устанавливаем галочку "Последний день месяца". Для получения рассылки в конкретное число месяца -указываем число в строке "День месяца" (см. рис. 9).

Примечание: параметры «Последний день месяца» и «День месяца» являются взаимоисключающими, поэтому можно выбрать только один из них.

 

Рис. 9 – Настройка детализации

При внесении изменений в ранее созданный календарь рассылки (увеличение количества отчетов, изменение дней недели рассылки и пр.) пользователи получат все отчеты по новому расписанию, которые не были отправлены с даты начала по текущий период. В связи с этим рекомендуется вводить изменения в календарь рассылки с изменением "Даты начала" на текущую.

Создание нового отчета для рассылки

Для создания нового отчета для рассылки входим в меню «Расширения»-«Отчеты для рассылки» (см. рис. 10). В левой части окна правой кнопкой мыши вызываем контекстное меню, выбираем пункт «Создать новую рассылку» (см. рис. 11).

Рис. 10 – Путь к справочнику «Отчеты для рассылки»


Рис. 11 – Создание новой рассылки

Правой кнопкой мыши на созданной новой рассылке вызываем контекстное меню, выбираем пункт «Свойства» (см. рис. 12). В открывшемся окне в строке "Название" вводим название, в строке «ИА отчет» из выпадающего списка выбираем отчет, который необходимо рассылать, в строке «Тип экспорта» выбираем тип формата файла рассылки (при выборе "PDF", "TXT", "CSV", "RTF", "XLS" будут отправлены файлы в соответствующих форматах; при выборе "PLAN TEXT" (с версии плагина 1.17.1) текст отчета будет отображен в теле письма), в строке «Календарь рассылки» - календарь рассылки, созданный в п. 2.2, в строке "Пароль" указываем пароль, который необходимо будет ввести при получении рассылки с отчетом (необязательное действие)(см. рис. 13). 

Рис. 12 - Вызов окна свойств рассылки

Рис. 13 - Свойства рассылки

Далее выбираем строку "Фильтр", в разделе "Ресторан" выбираем рестораны, о которых необходим отчет (см. рис. 14). 

 

Рис. 14 – Свойства отчета рассылки

Для того, чтобы отчет формировался на актуальные даты (сегодня-на сегодня, завтра-на завтра и т.д.), необходимо в строке "Начальная дата" ввести информацию согласно рис. 15, в строке "Конечная дата"-согласно рис. 16. При таких параметрах пропущенные отчеты будут приходить с данными на текущую дату, а не на дату в плане рассылки.

Рис. 15 - Начальная дата

Рис. 16- Конечная дата

В случае, если рассылка по какой-то причине была пропущена и необходимы отчеты с данными на момент плана рассылки, в строке "Начальная дата" необходимо внести информацию согласно рис.17, в строке "Конечная дата" согласно рис. 18 (реализовано в версии плагина 1.14.8 и старше).

Рис. 17 - Начальная дата

Рис. 18 - Конечная дата

В том случае, если необходим отчет за прошедший месяц, в строке "Начальная дата" необходимо внести информацию согласно рис. 19, в строке "Конечная дата" согласно рис. 20. При таких параметрах отчет сформируется за количество дней текущего месяца.

Рис. 19 - Начальная дата

Рис. 20 - Конечная дата

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

Рис. 21 - Предустановленные скрипты

Для того, чтобы формировать отчет не только на дату, но и на время рассылки, необходимо использовать параметр %TASK_DATETIME% (см. рис. 21а).

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

Рис. 21а - Использование даты и времени рассылки

Далее необходимо добавить получателя отчета. Для этого в поле «Работники» правой кнопкой мыши вызвать контекстное меню, выбрать пункт «Добавить получателя» (см. рис. 22), после чего появится список с ресторанами и сотрудниками ресторанов. Из списка выбрать требующегося сотрудника, нажать кнопку «Добавить» (см. рис.23). Перед добавлением получателя необходимо убедиться, что в свойствах получателя рассылки указана электронная почта (см. рис. 24).

Рис. 22 - Добавление получателя рассылки

Рис. 23 – Выбор получателя рассылки

Рис. 24 - Указание электронной почты получателя рассылки

В свойствах получателя рассылки устанавливаем статус «Активный», в строке "Тип отправления" в выпадающем меню указываем способ отправления отчета "Отправить по почте"(см. рис. 25).

Рис. 25 – Свойства получателя рассылки

Рассылка на внешнее электронное хранилище

Возможна рассылка отчетов на следующие внешние хранилища: Яндекс Диск, GoogleDocs, DropBox, любая папка на диске.

Порядок настройки рассылки на внешние электронные хранилища

Настройка рассылки и календаря производится аналогично случаю с рассылкой на email. Отличается только настройка способа доставки файла.

Создание новой группы внешних хранилищ

Для создания новой группы внешних хранилищ входим в меню "Расширения"-"Внешние хранилища". В левой части окна правой кнопкой мыши вызываем контекстное меню, выбираем пункт "Создать новую группу внешних хранилищ" (см. рис. 26).

Рис. 26 - Создание новой группы внешних хранилищ

В зоне "Внешнее хранилище"в контекстном меню выбираем пункт "Создать новое внешнее внешнее хранилище" (см. рис. 27).

Рис. 27 - Создание нового внешнего хранилища

В зоне "Главное" указываем название, альтернативное название, устанавливаем статус "Активный". В зоне "Основное" указываем хост (для ЯндексДиск - "webdav.yandex.ru"; для Google Docs - "docs.google.com"; для Drop Box - "dropbox.com", для сохранения на диск - "local"), порт (для для ЯндексДиск - 443, либо 80; для Google Docs - 0; для Drop Box -  0, для сохранения на диск - не заполняется), имя пользователя (для ЯндексДиск - учетная запись на Яндекс Диске, для Google Docs - почтовый адрес Google; для Drop Box - не указывается, для сохранения на диск - не заполняется), пароль для доступа к хранилищу (для ЯндексДиск - пароль от аккаунта на Яндекс Диске, для Google Docs - пароль от аккаунта Google; для Drop Box - ключ доступа к аккаунту для стороннего приложения (см. рис. 35), для сохранения на диск - не заполняется), путь к файлу в хранилище (для для ЯндексДиск - указывается директория на ЯндексДиск, если путь не указан или директория отсутствует, то файл будет располагаться в корне аккаунта; для Google Docs - не заполняется; для Drop Box - например FS/TEST/. Путь должен начинаться с имени папки и заканчиваться символом /. Если путь не указан, то файл будет выложен в корень аккаунта; для сохранения на диск - указать путь вида: D:\TEST_local\). (см. рис. 28).

Рис. 28 - Настройки внешнего хранилища

Создание нового отчета для рассылки

Для создания нового отчета для рассылки повторяем все действия, описанные в п. 3.3. Только в свойствах получателя (см. рис. 20) в строке "Тип отправления" выбираем "Отправить на Webdav ресурс" (см. рис. 29), в строке "Внешнее хранилище" выбираем одно из созданных внешних хранилищ на ресурсах Яндекс Диск, Google Docs или Drop Box. При выборе типа экспорта "PLAN TEXT" отчеты будут отправлены в файле формата .txt (по остальным типам экспорта см. п. 3.3).

Рис. 29 - Свойства получателя рассылки

Порядок настройки аккаунтов внешних хранилищ

Настройка аккаунта Google Docs

Для отправки отчетов на Google docs необходимо в настройках аккаунта на вкладке "Безопасность" Google разрешить доступ сторонним приложениям (см. рис. 30).

Рис. 30 - Настройки безопасности аккаунта Google Docs

Синхронизация Google docs (в том числе и web интерфейса) может длится достаточно долго. Поэтому отчеты могут приходить (и отображаться при подключении через web интерфейс) с задержкой в 10-20 минут.

Перечень полученных отчетов на Google Docs представлен на рис. 31.

Рис. 31 - Перечень отчетов, полученных на Google Docs

Настройка аккаунта DropBox

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

- Перейти по ссылке https://www.dropbox.com

- Войти в систему (ввести имя и пароль);

- Нажать кнопку "Create app" (см. рис. 32.)


Рис. 32 - Create app

- В открывшемся окне (см. рис. 33) выбрать "Dropbox API app";

Рис. 33 -Dropbox API app

- В открывшемся окне (см. рис. 34):

  • В разделе What type of data does your app need to store on Dropbox? выбрать Files and datastores
  • В разделе Can your app be limited to its own folder? выбрать No My app needs access to files already on Dropbox.
  • В разделе What type of files does your app need access to? выбрать All file types My app needs access to a user's full Dropbox. Only supported via the Core API.
  • В разделе Provide an app name, and you're on your way. указать уникальное имя (рекомендуется имя вида FS_CompanyName_1, где CompanyName - Наименование организации, 1 - порядковый номер, если будет несколько аккаунтов. Имя должно быть уникальным).
  • Нажать кнопку "Create App".

Рис. 34 - Выбор параметров

​- В появившемся окне свойств приложения (см. рис. 35), в разделе "Generated access token" нажать кнопку "Generate", при этом будет сгенерирован ключ доступа к аккаунту для стороннего приложения (используется для аутентификации, см. рис. 28 и его описание).

Рис. 35 - Ключ доступа к аккаунту для стороннего приложения

Экспорт отчётов во внешние базы данных

Для экспорта отчетов во внешнюю БД необходимо настроить соединение с БД и создать таблицу с  полями, соответствующими экспортируемому отчету.

Создание набора данных

Создаем набор данных для отчета обычным способом

Создание отчёта

Создаем отчет обычным способом. В поле "Тип отчета" выбираем "Export report"( см. рис.36).


Рис. 36 - Выбор типа отчета для экспортного отчета

Для создания макета в строке "Макет" вводим sql-запрос (см. рис. 37).

Рис. 37 - Макет отчета

Создание календаря рассылки

Календарь рассылки создается точно так же, как и в случае использования рассылки на email.

Создание подключения к БД

Для создания нового подключения к внешней БД необходимо в меню "Расширения"-"Внешние хранилища" в поле "Подключение к БД" создать новое подключение к БД (см. рис. 38)

Рис. 38 - Создание нового подключения к БД

В свойствах подключения в строке "Название" вводим название подключения. В строке "Имя пользователя" - имя пользователя БД, в которую будет экспортироваться отчет, в строке "Пароль"-пароль к БД, в которую будет экспортироваться отчет. В строке "Строка соединения" вписываем строку соединения с БД, в которую будет экспортироваться отчет (см. рис. 39).

Рис. 39 - Свойства подключения к БД

Создание экспорта по расписанию

Для создания нового экспорта по расписанию необходимо в меню "Расширения"-"Экспорт по расписанию" в поле "Экспорт по расписанию" создать новый экспорт по расписанию (см. рис. 40)

Рис. 40 - Создание нового экспорта по расписанию

В свойствах экспорта в строке "Название" указываем название, в строке "ИА отчет" выбрать необходимый отчет из выпадающего списка, в строке "Календарь рассылки" выбираем календарь рассылки, в строке "Внешние хранилище" выбираем созданное в п. 5.4 подключение к БД (см. рис. 41).

Рис. 41 - Свойства экспорта

Рассылка через Telegram

Для рассылки отчетов на Telegram необходимо зарегистрировать bot и получить его уникальный id.

Регистрация бота

Новый бот создается при помощи @BotFather. Необходимо найти этот контакт, нажать кнопку "Start" (см. рис. 42).

Рис. 42 - @BotFather

После отправки сообщения "/start" появится список команд для бота (см. рис. 43).

Рис. 43 - Перечень команд для бота

Для создания нового бота необходимо отправить сообщение "/newbot" (см. рис.44).

Рис. 44 - Создание нового бота

Далее необходимо отправить выбрать имя нового бота и отправить его. Имя бота должно оканчиваться на "bot" (см. рис. 45). Если имя бота свободно, то система выдаст сообщение с ссылкой для быстрого добавления бота в список контактов и токен бота.

Рис. 45 - Токен и ссылка для добавления бота в список контактов

При переходе по ссылке откроется диалоговое окно с созданным ботом (см. рис. 46). А токен необходимо будет прописать в ini-файле FS.

Рис. 46 - Бот создан

При первом сообщении бот попросит логин/пароль. “Введите почту и пароль в виде <UCS_LOGIN почта> <UCS_PASSWORD пароль>”

Пример ввода: <UCS_LOGIN m.ivanov@ucs.ru> <UCS_PASSWORD 1> (см. рис.47).

Логин - это почта работника, на которого настроена рассылка, пароль - пароль для входа в RK7.

Рис. 47 - Авторизация для получения рассылки

Для отмены авторизации необходимо ввести команду <LOGOUT> (см. рис.48).

Рис. 48 - Отказ от рассылки

Настройка ini-файла

Токен бота необходимо прописать в настройках ini-файла FS (см. рис. 49).

[FS_MAILING] 
Mailing = 1 
Telegram_token=151970178:AAGIVcjt5feEm4oy-Fahl6Pii8nyOPQUScY
CODE

Рис. 49 - Пример настройки ini-файла FS

Настройка рассылки


Настройка рассылки производится аналогично случаю с рассылкой на email. 

Календарь рассылки


Настройка календаря рассылки производится аналогично случаю с рассылкой на email.

Создание нового отчета для рассылки


Все действия аналогичны рассылке на email. Только в свойствах получателя в строке "Тип отправления" выбираем "Send on Telegram".

Удаление рассылки в менеджерской станции

Предположим, что была настроена рассылка (каждые 100 писем через 10 минут). После этого фича-сервер создал задания на рассылку, сформировал их и записал в БД SQL (таблица TEMP_TASK).

В этом случае отключение или удаление рассылки прекратит только формирование новых писем, отправка же писем согласно заданиям продолжиться.

Чтобы проанализировать данную ситуацию необходимо:
1. Проверить таблицу TEMP_TASK (рис. 50) на наличие записей со статусом 0,1,2 (еще не отправленные письма). Если таковые имеются, то необходимо просто дождаться окончания отработки всех заданий и в будущем создавать задания на рассылку(или не создавать вообще) с меньшим количеством писем.
2. Если в таблице все записи со статусом 3 или -1 и -2, а письма все равно отправляются, то необходимо создать задание в трекере и прикрепить к заданию БД SQL.

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

Примечание: при создании рассылки задается интервал, например 10 минут, это значит что каждые 10 минут FS будет формировать новое задание на рассылку. Однако если FS была отключена, то после включения она рассчитывает все пропущенные задания (сразу), потом они формируются и отправляются (интервал между оправками нужен чтобы рассылка не была принята за спам).

Важно: таблицу TEMP_TASK удалять нельзя. Только для тестовой базы можно изменить запросом статус у записей в этой таблице на -2 (STATUS). На рабочей БД этого делать нельзя! Нужно дожидаться окончания отправки.

Рис. 50 - Таблица TEMP_TASK базы SQL сервера справочников/отчетов