Сервис генерации отчетов
Сервис генерации отчетов предназначен для синхронной или асинхронной генерации отчётов по заданному шаблону.
Формирование отчётов осуществляется при помощи библиотеки JasperReports® Library.
Формирование шаблонов отчетов
Чтобы сформировать отчет требуется подготовить шаблон отчета.
Для подготовки шаблонов отчетов сервис предлагает возможность создания или модификации шаблонов отчётов и привязки к ним составляющих их файлов. Чтобы использовать шаблоны перейдите на страницу https://<Platform_instance_URL>/demo/
, выберите пункт Отчеты и закладку Шаблоны.
Формирование файлов, входящих в состав шаблона отчёта
Формирование файлов, входящих в состав шаблона отчёта, осуществляется при помощи произвольного текстового редактора (например, Notepad++), позволяющего сохранять файлы в форматах JRXML
(XML), R
, JSON
. В представленной ниже таблице приведено соответствие файла, входящего в состав шаблона отчёта, и формата, в котором он должен быть реализован:
Вид файла | Формат | Примеры файлов |
---|---|---|
Файл шаблона отчёта библиотеки Jasper Reports | JRXML (XML) | books-jr-template.zip, audit-template.zip, templateAudit.zip |
Файл скрипта трансформации данных | R | books-r-script-simple.zip, books-r-script-services-call-and-data-transformation.zip, books-r-script-service-call.zip, audit-script.zip, generalized_script.zip |
Файл настроек порядка формирования отчёта | JSON | books-json-settings.zip, audit-settings.zip, settingsAll.zip |
Файл шаблона отчёта библиотеки Jasper Reports
может быть создан с использованием графической среды TIBCO Jaspersoft Studio версии 6.11.0
.
Трансформация данных
Файл скрипта трансформации данных предназначен для выборки информации из внешних, по отношению к сервису, источников и преобразовании информации к виду, обрабатываемому библиотекой Jasper Reports
.
Выборка и преобразование информации
{
"parameters": {
<наименование параметра 1>: <значение параметра 1>,
... ... ...
<наименование параметра m>: <значение параметра m>
},
"data": [
<кортеж данных для построения отчёта 1>,
... ... ...
<кортеж данных для построения отчёта k>
]
}
или
{
"parameters": {
<наименование параметра 1>: <значение параметра 1>,
... ... ...
<наименование параметра m>: <значение параметра m>
},
"data": {
<наименование перечня кортежей данных для построения отчёта>: [
<кортеж данных для построения отчёта 1>,
... ... ...
<кортеж данных для построения отчёта k>
]
}
}
Выборка информации из внешних, по отоношению к сервису, источников при трансформации данных осуществляется с помощью встроенных в сервис функций, представленных в таблице ниже:
Наименование | Назначение | Входные параметры | Тип возвращаемого значения (R) | Примечания |
---|---|---|---|---|
get | Выборка данных запросом HTTP GET из внешнего сервиса. | url — URL доступа к сервису; contentType — тип MIME запроса HTTP; pathParameters — карта соответствия наименования переменных секции path URL доступа к сервису и значений, присвоенных этим переменным; queryParameters — карта соответствия наименования переменных секции query URL доступа к сервису и значений, присвоенных этим переменным. | character | |
post | Выборка данных запросом HTTP POST из внешнего сервиса. | url — URL доступа к сервису; contentType — тип MIME запроса HTTP; pathParameters — карта соответствия наименования переменных секции path URL доступа к сервису и значений, присвоенных этим переменным; queryParameters — карта соответствия наименования переменных секции query URL доступа к сервису и значений, присвоенных этим переменным; body — тело запроса. | character | |
getPlatform | Выборка данных запросом HTTP GET из сервиса Платформы или продукта, на её основе. | destination — адрес сервиса в формате <наименование сервиса>:<метод сервиса>; contentType — тип MIME запроса HTTP; pathParameters — карта соответствия наименования переменных секции path URL доступа к сервису и значений, присвоенных этим переменным; queryParameters — карта соответствия наименования переменных секции query URL доступа к сервису и значений, присвоенных этим переменным. | character | Для корректного взаимодействия с подсистемой безопасности Платформы необходимо сформировать секцию authentication в файле настроек порядка формирования отчёта. |
postPlatform | Выборка данных запросом HTTP POST из сервиса сервиса Платформы или продукта, на её основе. | destination — адрес сервиса в формате <наименование сервиса>:<метод сервиса>; contentType — тип MIME запроса HTTP; pathParameters — карта соответствия наименования переменных секции path URL доступа к сервису и значений, присвоенных этим переменным; queryParameters — карта соответствия наименования переменных секции query URL доступа к сервису и значений, присвоенных этим переменным; body — тело запроса. | character | Для корректного взаимодействия с подсистемой безопасности Платформы необходимо сформировать секцию authentication в файле настроек порядка формирования отчёта. |
graphql | Выборка информации из источника данных GrpahQL. | name — наименование источника данных GraphQL (см. раздел Настройка порядка формирования отчёта); operationName — наименование операции выборки данных в запросе информации в формате GraphQL. Необязательный параметр; variables — параметры запроса к серверу GraphQL. Необязательный параметр. | character | Для корректного взаимодействия с подсистемой безопасности Платформы необходимо сформировать секцию authentication элемента раздела graphql источника данных GraphQL в файле настроек порядка формирования отчёта. |
Настройка порядка формирования отчёта
Структура файла настроек порядка формирования отчёта должна иметь следующий вид:
Структура файла настроек порядка формирования отчёта
{
"parameters": [{
"name": <обязательное уникальное наименование параметра 1>,
"description": <необязательное описание параметра 1>,
"type": <необязательный тип параметра 1, по умолчанию имеет тип string>,
"value": <необязательное значение параметра 1>,
"default.value": <необязательное значение параметра 1 по умолчанию>
}, {
... ... ...
}, {
"name": <обязательное уникальное наименование параметра N>,
"description": <необязательное описание параметра N>,
"type": <необязательный тип параметра N, по умолчанию имеет тип string>,
"value": <необязательное значение параметра N>,
"default.value": <необязательное значение параметра N по умолчанию>
}],
"customView": <необязательное наименование специализированной формы ввода параметров формирования отчёта>,
"graphql": [{
"name": <наименование источника данных GraphQL 1>,
"endpoint": <URL доступа к серверу GraphQL 1 по протоколу HTTP(S)>,
"query": <запрос данных в формате GraphQL 1>,
"authentication": {
"client.id": <обязательный идентификатор клиента OAuth 2.0/OpenID>,
"grant.type": <обязательный тип доступа>
}
}, {
... ... ...
}, {
"name": <наименование источника данных GraphQL T>,
"endpoint": <URL доступа к серверу GraphQL T по протоколу HTTP(S)>,
"query": <запрос данных в формате GraphQL T>,
"authentication": {
"client.id": <обязательный идентификатор клиента OAuth 2.0/OpenID>,
"grant.type": <обязательный тип доступа>
}
}],
"authentication": [{
"service.name": <обязательное наименование сервиса 1 Платформы, или продукта, построенного на её основе>,
"client.id": <обязательный идентификатор клиента OAuth 2.0/OpenID>,
"grant.type": <обязательный тип доступа>
}, {
... ... ...
}, {
"service.name": <обязательное наименование сервиса M Платформы, или продукта, построенного на её основе>,
"client.id": <обязательный идентификатор клиента OAuth 2.0/OpenID>,
"grant.type": <обязательный тип доступа>
}]
}
Значение поля type может принимать одно из следующих значений:
Значение поля | Описание |
---|---|
number | число с плавающей точкой |
bigint | целое число произвольной длины |
string | строка символов |
boolean | логическое значение |
Cекция authentication элемента раздела graphql не является обязательной.
Формирование шаблона отчёта
Для формирования шаблона отчета следует:
- сформировать файлы, входящие в состав шаблона отчёта;
- сформировать запись структуры хранения параметров шаблона отчёта, см. метод API, или описание команды создания/модификации записи структуры хранения параметров шаблона отчёта в разделе Консоль администрирования;
- привязать файлы, сформированные на этапе 1 к структуре хранения параметров шаблона отчёта, созданной, или модифицированной, на этапе 2 см. метод