Общая информация
ChangedFileReportформирует и рассылает отчетChangedFileReport.trdpпо измененным документам в проектах.Для работы отчета и утилиты SQL-часть должна быть интегрирована в систему. (Набор скриптов
ChangedFileReport.sql)- Утилита:
- обходит пространства системы;
- находит библиотеку с проектными файлами и библиотеку отчетов;
- проверяет наличие измененных документов за последние
Nдней; - формирует отчет по шаблону и сохраняет его в библиотеку отчетов;
- отправляет отчет получателям из поля проекта.
- Основные настройки берутся из
config.json, параметры SMTP - изmail.json.
Настройка параметров запуска утилиты
Файл config.json
Располагается рядом с исполняемым файлом утилиты.
Пример актуального файла:
{
"WebUrl": "https://vitroappnew.cds.spb.ru",
"Login": "admin",
"Password": "********",
"LibraryName": "Файлы",
"ReportLibraryName": "Отчеты",
"DayCount": 1,
"IsOnlyRDStage": false,
"StatusIdList": [],
"ExtensionList": [],
"PublishFolderName": "Опубликовано",
"ReportItemId": "b46049b4-05dc-47fb-b6be-a4aa40c1e05f",
"ProjectListId": "d40525d0-da3f-43e0-98f9-eccf7177bdde",
"AddressField": "report_addressto",
"MailSubject": "Отчет по выпуску в производство работ",
"MailBody": "Сформирован отчет по выпуску в производство работ по проекту «{0}» от системы ViroCAD (СОД). {1}/site/{2}/list/{3}/item/{4}"
}
Описание параметров
| Параметр | Пример | Описание |
|---|---|---|
WebUrl | https://vitroappnew.cds.spb.ru | URL Vitro MP, используется для API и ссылки в письме |
Login | admin | Логин технической учетной записи |
Password | ******** | Пароль технической учетной записи |
LibraryName | Файлы | Имя библиотеки с проектными файлами |
ReportLibraryName | Отчеты | Имя библиотеки, куда сохраняются сгенерированные отчеты |
DayCount | 1 | Глубина выборки в днях (изменения за последние N дней) |
IsOnlyRDStage | false | true - формировать только по документам стадии РД |
StatusIdList | [] | Список GUID статусов документов; пусто - без фильтра по статусу |
ExtensionList | [] | Список расширений без точки (["pdf","dwg"]); пусто - без фильтра |
PublishFolderName | Опубликовано | Имя папки, из которой собираются проекты |
ReportItemId | b46049b4-... | GUID шаблона отчета (TRDP/файл отчета в системе) |
ProjectListId | d40525d0-... | GUID списка проектов для определения адресатов |
AddressField | report_addressto | Internal name поля проекта с получателями рассылки |
MailSubject | Отчет по выпуску... | Тема письма |
MailBody | Отчет по {0} сформирован и сохранен в {1}/site/{2}/list/{3}/item/{4} | Тело письма с шаблоном подстановки |
Шаблон MailBody
Подстановки выполняются в следующем порядке:
{0}- имя пространства, по которому сформирован отчет;{1}-WebUrl;{2}- идентификатор сайта;{3}- идентификатор библиотеки отчетов;{4}- идентификатор созданного элемента отчета.
Файл mail.json
Используется для SMTP-настроек отправки писем.
Пример:
{
"Host": "smtp.example.com",
"Port": 25,
"Login": "smtp_user",
"Password": "********",
"FromAddress": "noreply@example.com",
"FromName": "Vitro",
"EnableSsl": false,
"UseDefaultCredentials": false
}
| Параметр | Описание |
|---|---|
Host | SMTP-сервер |
Port | SMTP-порт (если 0, используется по умолчанию) |
Login / Password | Учетные данные SMTP (опционально) |
FromAddress | Email отправителя |
FromName | Отображаемое имя отправителя |
EnableSsl | Использовать SSL/TLS |
UseDefaultCredentials | Использовать системные credentials |
Принцип работы
- Утилита читает
config.jsonиmail.json. - Авторизуется в Vitro MP по
WebUrl/Login/Password. - Получает список сайтов.
- Для каждого сайта:
- Находит библиотеки
LibraryNameиReportLibraryName. - Находит папку
PublishFolderName. - Проверяет, есть ли измененные документы за период
DayCount(с учетомStatusIdListиExtensionList). - Если изменения есть, формирует отчет по шаблону
ReportItemId. - Сохраняет отчет в
ReportLibraryName. - Определяет адресатов из
ProjectListIdи поляAddressField. - Отправляет письмо с темой
MailSubject, текстомMailBodyи вложением отчета.
- Находит библиотеки
Возможные ошибки
- Неверные
WebUrl/Login/Password- ошибки авторизации и доступа к API. - Неправильные
LibraryName/ReportLibraryName/PublishFolderName- сайт пропускается, отчет не формируется. - Неверный
ReportItemId- не загружается шаблон отчета. - Неверный
ProjectListIdилиAddressField- не определяются адресаты рассылки. - Ошибки SMTP (
mail.json) - отчет сохраняется, но письмо не отправляется.
Рекомендации по настройке
- Для ежедневной рассылки использовать
DayCount = 1. Для ежемесячнойDayCount = 30 - В
ExtensionListуказывать расширения без точки (pdf,dwg). - Если нужно исключить лишние документы, то ограничить
StatusIdList - Настройка периода запуска настраивается системными настройками ОС и должна быть синхронизирована с
DayCount(cron - Linux, планировщик задач - Windows)