<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис отчетов |
Сервис (ReportService) предназначен для генерации отчетов.
Схема работы сервиса отчетов:
1.Чтобы сформировать отчет, сотрудник в веб-клиенте заполняет диалог с параметрами и нажимает на кнопку ОК. В этот момент веб-клиент передает веб-серверу указанные параметры и данные пользователя, который запросил отчет.
2.Веб-сервер создает в базе данных запись о новом отчете со статусом New и через брокер сообщений RabbitMQ передает параметры отчета и данные пользователя сервису отчетов.
3.Сервис начинает генерацию отчета. Если генерация не завершилась за 1 секунду, то в веб-клиенте появляется сообщение о том, что отчет формируется и при необходимости его можно прервать. Через 30 секунд после запуска сообщение автоматически закрывается, а в правом верхнем углу проводника системы появляется кнопка для отслеживания статуса длительного отчета .
Во время формирования отчета в сервисе выполняется серверный код, написанный при разработке отчета. Например, серверные события «До выполнения» или «После выполнения», которые разработчик указал в среде разработки в редакторе отчета. Если для отчета написан обработчик клиентского события «До выполнения», то он выполняется на веб-сервере.
Если отчет сгенерирован успешно, сервис:
•отправляет отчет сервису хранилищ (StrorageService), который помещает его в папку файлового хранилища;
•записывает в базу данных статус отчета.
4.Сервис отчетов через брокер сообщений RabbitMQ отправляет на веб-сервер ИД отчета.
5.Веб-сервер получает сообщение о том, что отчет сформирован. После этого из базы данных получает ИД бинарных данных, формирует ссылку на скачивание отчета и передает ее веб-клиенту.
6.Веб-клиент по ссылке запрашивает отчет из сервиса хранилищ.
7.Сервис хранилищ извлекает отчет из папки файлового хранилища и передает на веб-клиент. В проводнике системы кнопка отчета меняется на .
ПРИМЕЧАНИЕ. Отчеты удаляются из файлового хранилища по истечении срока очистки устаревших данных, а не сразу после скачивания.
Если при формировании отчета в сервисе произошла ошибка, то в базу данных передается соответствующий статус. Веб-сервер получает этот статус, после чего в веб-клиенте появляется сообщение с информацией об ошибке и отображается кнопка .
По умолчанию сервис отключен и устанавливается в составе общего сервиса. Рекомендуется развернуть сервис отчетов отдельно, если нужно повысить его производительность и при этом уже используется более 80% ресурсов, доступных общему сервису.
Настройки сервиса задает администратор. Например, можно изменить количество параллельно выполняемых отчетов.
Сообщения об ошибках, предупреждениях и информационные сообщения, которые появляются во время работы сервиса, записываются в лог-файл.
© Компания Directum, 2024 |