Перейти к основному содержимому

Сервис генерации отчетов

Сервис генерации отчетов предназначен для синхронной или асинхронной генерации отчётов по заданному шаблону.

Формирование отчётов осуществляется при помощи библиотеки JasperReports® Library.

Формирование шаблонов отчетов

Чтобы сформировать отчет требуется подготовить шаблон отчета.
Для подготовки шаблонов отчетов сервис предлагает возможность создания или модификации шаблонов отчётов и привязки к ним составляющих их файлов. Чтобы использовать шаблоны перейдите на страницу https://<Platform_instance_URL>/demo/, выберите пункт Отчеты и закладку Шаблоны.

Формирование файлов, входящих в состав шаблона отчёта

Формирование файлов, входящих в состав шаблона отчёта, осуществляется при помощи произвольного текстового редактора (например, Notepad++), позволяющего сохранять файлы в форматах JRXML (XML), R, JSON. В представленной ниже таблице приведено соответствие файла, входящего в состав шаблона отчёта, и формата, в котором он должен быть реализован:

Вид файлаФорматПримеры файлов
Файл шаблона отчёта библиотеки Jasper ReportsJRXML (XML)books-jr-template.zip, audit-template.zip, templateAudit.zip
Файл скрипта трансформации данныхRbooks-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
Файл настроек порядка формирования отчётаJSONbooks-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 не является обязательной.

Формирование шаблона отчёта

Для формирования шаблона отчета следует:

  1. сформировать файлы, входящие в состав шаблона отчёта;
  2. сформировать запись структуры хранения параметров шаблона отчёта, см. метод API, или описание команды создания/модификации записи структуры хранения параметров шаблона отчёта в разделе Консоль администрирования;
  3. привязать файлы, сформированные на этапе 1 к структуре хранения параметров шаблона отчёта, созданной, или модифицированной, на этапе 2 см. метод API, или описание команды загрузки файлов, входящих в состав заданного шаблона отчёта в разделе Консоль администрирования.

Синхронное формирование отчёта

  1. сформировать шаблон отчёта;
  2. сформировать отчёт (смотри метод синхронного формирования отчёта в разделе Методы API).

Асинхронное формирование отчёта

  1. сформировать шаблон отчёта;
  2. сформировать отчёт (смотри метод асинхронного формирования отчёта и/или методы взаимодействия с менеджером заданий в разделе Методы API).

Модель данных

Описания параметров сервиса построения отчетов приведены в таблицах ниже

Параметры сервиса

Идентификатор задания

Наименование поляТип поляОписание поля
taskIDstringидентификатор задания

Параметры запроса добавления задания

Наименование поляТип поляОписание поля
kindstringвид задания (допустимые значения: EXPORT_REPORT_TO_FILE_SERVICE, EXPORT_REPORT_TO_SFTPS, MOVE_REPORT_TEMPLATES_FILES_TO_DATABASE)
parametersstringпараметры выполнения задания
localestringлокализация согласно RFC 5646
sendNotificationbooleanпризнак необходимости отправки пользователю, инициировавшему задание, уведомления о его завершении (true - отправлять уведомление, false - не отправлять уведомление). Значение по умолчанию: false

Описания ошибок, зафиксированных при работе сервиса бизнес-логики

Наименование поляТип поляОписание поля
codestringкод ошибки в номерации сервиса
exceptionStackTracestringтрассировка стека исключения
exceptionTypestringтип исключения
extrastringдополнительная информация об ошибке
idstringидентификатор сквозной трассировки
isErrorbooleanпризнак обнаружения ошибки при работе сервиса
messagestringописание ошибки в удобном для восприятия человека виде
sourcestringисточник возникновения ошибки
typestringтип ошибки

Описания ошибок, зафиксированных при работе сервиса

Наименование поляТип поляОписание поля
codestringкод ошибки в номерации сервиса
extrastringдополнительная информация об ошибке
idstringидентификатор сквозной трассировки
isErrorbooleanпризнак обнаружения ошибки при работе сервиса
messagestringописание ошибки в удобном для восприятия человека виде
typestringтип ошибки

Тип результата при успешном завершении работы сервиса

Наименование поляТип поляОписание поля
namestringтип результата в случае успешного завершения работы сервиса

Стандартизированный ответ сервиса бизнес-логики Платформы

Наименование поляТип поляОписание поля
errorсекция, содержащая описание ошибки, зафиксированной при работе сервиса бизнес-логики
resultрезультат работы сервиса прикладной области в случае его успешного завершения
typeInfoсекция, содержащая тип результата в случае успешного завершения работы сервиса

Стандартизированный ответ сервиса Платформы

Наименование поляТип поляОписание поля
errorсекция, содержащая описание ошибки, зафиксированной при работе сервиса
resultрезультат работы сервиса в случае его успешного завершения
typeInfoсекция, содержащая тип результата в случае успешного завершения работы сервиса

Параметры сервиса бизнес-логики

Наименование поляТип поляОписание поля
authorizationExplicitScopes[string]перечень областей авторизации сервиса бизнес-логики
cmdstringкоманда вызова сервиса бизнес-логики
descriptionstringописание сервиса бизнес-логики
urnstringсекция path вызова сервиса бизнес-логики

Идентификатор шаблона отчёта

Наименование поляТип поляОписание поля
uuidstring($uuid)идентификатор шаблона отчёта

Номер страницы, количество записей на странице и тип сортировки

Наименование поляТип поляОписание поля
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры добавления или модификации шаблона отчёта

Наименование поляТип поляОписание поля
aliasstringпсевдоним
descriptionstringописание шаблона отчёта
namestringнаименование шаблона отчёта
namespacestringпространство имён
uuidstring($uuid)идентификатор шаблона отчёта

Параметры привязки файлов, входящих в состав шаблона отчёта

Наименование поляТип поляОписание поля
scriptstring($byte)файл скрипта трансформации данных
settingsstring($byte)файл настроек порядка формирования отчёта
templatestring($byte)файл шаблона отчёта Jasper Reports
uuidstring($uuid)идентификатор шаблона отчёта

Псевдоним и пространство имён

Наименование поляТип поляОписание поля
aliasstringпсевдоним
namespacestringпространство имён

Параметры асинхронного построения отчета

Наименование поляТип поляОписание поля
callbackURLstringURL обратного вызова возврата результата выполнения метода
destinationstringURI выгрузки отчёта в файловое хранилище, соответствующее значению параметра destinationType
destinationTypestringтип места назначения выгрузки файла отчёта (допустимые значения: PLATFORM, FTP, FTPS, SFTP)
externalURLbooleanпризнак необходимости разрешения URL обратного вызова результата выполнения метода посредством сервиса Discovery Платформы
parametersstringпараметры объединения и трансформации информации из источников данных
typestringформат отчёта (допустимые значения: CSV, HTML, JSON, PDF, RTF, TXT, XLS, XLSX, XML)
uuidstring($uuid)идентификатор шаблона отчёта
localestringлокализация согласно RFC 5646

Параметры для формирования URL выгрузки заданных файлов из файлового сервиса Платформы

Наименование поляТип поляОписание поля
archiveNamestringнаименование архивного файла, выгружаемого по сформированному URL
fileIDs[string]перечень идентификаторов файлов файлового сервиса Платформы, для которых формируется URL выгрузки

Параметры построения отчета

Наименование поляТип поляОписание поля
destinationstringURI выгрузки отчёта в файловое хранилище, соответствующее значению параметра destinationType
destinationTypestringтип места назначения выгрузки файла отчёта (допустимые значения: PLATFORM, FTP, FTPS, SFTP)
parametersstringпараметры объединения и трансформации информации из источников данных
typestringформат отчёта (допустимые значения: CSV, HTML, JSON, PDF, RTF, TXT, XLS, XLSX, XML)
uuidstring($uuid)идентификатор шаблона отчёта
localestringлокализация согласно RFC 5646

Идентификатор

Наименование поляТип поляОписание поля
idinteger($int64)идентификатор

Параметры выборки по дате поступления задания

Наименование поляТип поляОписание поля
assignmentDatestring($date-time)дата поступления задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по дате завершения обработки задания

Наименование поляТип поляОписание поля
completionDatestring($date-time)дата завершения обработки задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по виду (типу) задания

Наименование поляТип поляОписание поля
kindstringвид (тип) задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по признаку необходимости отправки нотификации пользователю о завершении выполнения задания

Наименование поляТип поляОписание поля
sendNotificationbooleanпризнак необходимости отправки нотификации пользователю о завершении выполнения задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по признаку необходимости отправки нотификации пользователю о завершении выполнения задания и идентификатору пользователя

Наименование поляТип поляОписание поля
sendNotificationbooleanпризнак необходимости отправки нотификации пользователю о завершении выполнения задания
userIDstringидентификатор пользователя
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по дате начала обработки задания

Наименование поляТип поляОписание поля
startDatestring($date-time)дата начала обработки задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по статусу

Наименование поляТип поляОписание поля
statestringстатус задания
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Параметры выборки по идентификатору пользователя

Наименование поляТип поляОписание поля
userIDstringидентификатор пользователя
pageinteger($int32)номер страницы (начиная с 0)
sizeinteger($int32)максимальное число записей на странице
sortstringпорядок сортировки записей (формат <поле сортировки>:<порядок сортировки>)

Для авторизации доступа к методам сервиса формирования отчётов используется метод API /api/external/access/check сервиса проверки прав доступа Платформы.