Данный раздел содержит подробную инструкцию по установке и настройке системы автоматической выгрузки отчётов в формате PDF или EXCEL на электронную почту или в Telegram-бот.
...
1. Установка
1.1. Копирование файлов
Скопируйте все файлы и папки, кроме следующих:
*Предоставляются по запросу в службе тех.поддержки
LOG
mydownloads
lastresult.json
1.2. Настройка службы
- Откройте файл
createAutoGenerateReportService.bat
в текстовом редакторе. - В параметре
binPath
укажите корректный путь к файлуAutoGenerateReport.exe
.
1.3. Создание Windows-службы
Запустите файл createAutoGenerateReportService.bat
от имени администратора. Будет создана Windows-служба с именем "«Game-Keeper AutoGenerateReport"».
1.4. Настройка путей к библиотекам
Откройте файл AutoGenerateReport.runtimeconfig.dev.json
и укажите правильный путь к папке LIB
.
...
2. Конфигурация
Все настройки выполняются в конфигурационном файле appsettings.json
.
2.1. Настройка списка отчетов
...
Секция TaskList
...
Каждый выгружаемый отчет отчёт настраивается отдельным элементом массива в секции секции TaskList
.
Параметры элемента:
- ReportId — идентификатор отчета в системе ReportSystem (Интерактивные отчёты) (см. Рис. 1).
- ReportName — имя, под которым отчет будет сохраняться.
- Schedule — расписание выгрузки (используется формат CRON, подробнее: CRON) (пример см. ниже).
- ExportFormat — формат выгрузки:
"«pdf"»
(PDF) или"«
xlsx"»
(Excel). - Smtp — параметры для рассылки отчёта по электронной почтев секции указываем адреса электронной почты, которые ,будут получать рассылку.
- Telegram — параметры для отправки отчета адреса пользователей в Telegram, которые будут получать рассылку (адрес — это User ID в Telegram, получить его можно через бота @getmyid_bot).
Рис. 1 ID отчёта
Подсказка | ||||
---|---|---|---|---|
| ||||
Пример cron-команд для рассылки отчётов с разной периодичностью и в заданное время, оформленных по правилам cron:1. Ежедневная рассылка в 12:00 (полдень)0 12 * * * команда
2. Еженедельная рассылка по понедельникам в 09:3030 9 * * 1 команда
3. Ежемесячная рассылка 1-го числа месяца в 08:000 8 1 * * команда
4. Рассылка каждый будний день (понедельник-пятница) в 18:4545 18 * * 1-5 команда
|
2.2. Настройка способов рассылки
...
Секция SenderProviders
...
2.2.1. E-mail
В секции " «SenderProviders"»:"«Smtp"»
указываются параметры SMTP-сервера, учетные данные отправителя и , а также отображаемое имя, которое будет видно получателям писем.
2.2.2. Telegram
В секции " «SenderProviders"»:"«Telegram"
настраивается »
настраивается параметр " «ApiToken"»
— токен Telegram-бота, через которого будут рассылаться отчеты. Получатели отправляться отчёты. Обратите внимание: получатели должны быть подписаны на данного бота.
Важно! Для каждой конфигурации должен быть создан уникальный телеграм-бототдельной конфигурации необходимо создавать уникального Telegram-бота.
- При первом запуске Telegram-бота пользователь получает сообщение:
"Привет, {UserName}! Ваш User ID: {UserId}. Вы подписались на рассылку отчетов."
- Данные (UserId и UserName) сохраняются в файле
telegramUsers.json
и используются для последующих рассылок отчётов в Telegram.
2.3. Подключение к ReportSystem (
...
интерактивные отчёты)
Секция ReportSystem
Для подключения к системе интерактивных отчётов ReportSystem необходимо указать следующие параметры:
BaseUrl — URL сервера ReportSystem (как адресная строка в браузере).
Login
— логин пользователя с правами на формирование отчетов— имя пользователя, от имени которого будет выполняться подключение. Указанный пользователь должен иметь права на вход в ReportSystem, а также на создание и просмотр отчётов.
- Password — пароль пользователя, соответствующий указанному логину.
...
3. Описание работы службы
3.1. Принцип работы
- Служба AutoGenerateReport отслеживает расписание в секции
TaskList
. - В заданное время автоматически формируется отчет отчёт через ReportSystem по указанному с указанным ReportId и формату форматом (pdf или excel) (см. п. 2.1.).
- Сформированные файлы сохраняются в папке
mydownloads
в двух вариантах:ReportId + дата_и_время + .ExportFormat
ReportName + дата_и_время + .ExportFormat
- Файл с названием
ReportName + дата_и_время + .ExportFormat
отправляется на электронную почту и/или в Telegram адресатам из настроек.
3.2. Гибкость настроек
Вы можете добавить в TaskList
любое количество отчетовотчётов, каждый с индивидуальным расписанием и списками получателей.
...
4.
...
- При первом запуске Telegram-бота пользователь получает сообщение:
"Привет, {UserName}! Ваш User ID: {UserId}. Вы подписались на рассылку отчетов."
- Данные (UserId и UserName) сохраняются в файле
telegramUsers.json
и используются для последующих рассылок отчетов в Telegram.
5. Пример конфигурации (appsettings.json)
...
Пример конфигурации (appsettings.json)
Блок кода | ||
---|---|---|
| ||
{ "AllowedHosts": "*", |
...
"SenderProviders": {
|
...
"Smtp": {
|
...
"SmtpHost": "smtp.yandex.ru",
|
...
"SmtpPort": 465,
|
...
"UseSsl": true,
|
...
"Login": "Логин |
...
, |
...
от которого |
...
происходит рассылка", "Password": "Пароль", |
...
"From": |
...
{ |
...
|
...
"Address": "Адрес |
...
, |
...
с которого |
...
происходит рассылка", "Name": " |
...
Отображаемое имя, от которого приходит письмо" } }, "Telegram": |
...
{ |
...
|
...
"ApiToken": " |
...
6278601718:AAG5vYEtpQR6cOUCNUay8kpvD3xI0cPDbQo" } }, |
...
"ReportSystem": |
...
{ |
...
|
...
"BaseUrl": "http://cloud.game-keeper.com:5200", |
...
|
...
"Login": "Robot", |
...
|
...
"Password": "1" |
...
} , |
...
"TaskList": [
|
...
{
|
...
"ReportId": "ceb7713a-7a76-6940-243d-269a584e6844",
|
...
"ReportName": "Выручка за текущий год",
|
...
"Schedule": "*/1 * * * *",
|
...
"ExportFormat": "pdf",
|
...
"Smtp": {
|
...
"To": [
|
...
{ "Name": "Себе", |
...
|
...
"Address": "any@yandex.ru", |
...
|
...
"Disabled": false |
...
|
...
} ], |
...
"Cc": [ ], |
...
"Subject": "Выручка за текущий год",
|
...
"Body": "<h1>Выручка за текущий год</h1> Письмо сформировано автоматически <br/> С уважением, <br/> Ваш автогенератор отчетов",
|
...
"BodyIsHtml": true,
|
...
"Disabled": false
|
...
},
|
...
"Telegram": {
|
...
"To": [
|
...
{ "Name": "Имя получателя", |
...
|
...
"Address": "123456789", |
...
|
...
"Disabled": false |
...
|
...
} ], |
...
"Text": "Выручка за текущий год",
|
...
"Disabled": false
|
...
},
|
...
"Disabled": false
|
...
}
|
...
]
} |
...
...
Примечание | ||
---|---|---|
| ||
|
...
|
...