Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Данный раздел содержит подробную инструкцию по установке и настройке системы автоматической выгрузки отчётов в формате PDF или EXCEL на электронную почту или в Telegram-бот.

...

1. Установка

1.1. Копирование файлов

Скопируйте все файлы и папки, кроме следующих:
*Предоставляются по запросу в службе тех.поддержки

  • LOG
  • mydownloads
  • lastresult.json

1.2. Настройка службы

  1. Откройте файл createAutoGenerateReportService.bat в текстовом редакторе.
  2. В параметре 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.
Параметры элемента:

...

Подсказка
bgColorblue
titleПодсказкаПОДСКАЗКА

Пример cron-команд для рассылки отчётов с разной периодичностью и в заданное время, оформленных по правилам cron:

1. Ежедневная рассылка в 12:00 (полдень)

0 12 * * * команда 

  • Запускается каждый день в 12:00.
  • 0 — минута (00)
  • 12 — час (12)
  • * * * — любой день месяца, любой месяц, любой день недели

2. Еженедельная рассылка по понедельникам в 09:30

30 9 * * 1 команда

  • Запускается каждую неделю в понедельник в 09:30.
  • 30 — минута (30)
  • 9 — час (09)
  • * * — любой день месяца и месяц
  • 1 — понедельник (дни недели: 0 или 7 — воскресенье, 1 — понедельник, ..., 6 — суббота)

3. Ежемесячная рассылка 1-го числа месяца в 08:00

0 8 1 * * команда

  • Запускается 1-го числа каждого месяца в 08:00.
  • 0 — минута (00)
  • 8 — час (08)
  • 1 — день месяца (первое число)
  • * * — любой месяц и день недели

4. Рассылка каждый будний день (понедельник-пятница) в 18:45

45 18 * * 1-5 команда

  • Запускается с понедельника по пятницу в 18:45.
  • 45 — минута (45)
  • 18 — час (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 — пароль пользователя, соответствующий указанному логину.

2.4. Создание списка отчётов

...

  • .

...

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.

...

Пример конфигурации (appsettings.json)

Блок кода
languagejson
{
"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
}
]
}

...

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

...

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

...

  • .

...