Правила обработки шаблонов¶
Шаблон представлен в виде XML-файла типа FRX.
Источники данных указываются в соответствующих тегах <_Connection>, например, для Postgresql –
Пример настроек переменных окружения для источника данных:
LDM_RS_FACADE_PROVIDER_MyConnection: PostgreSQL
LDM_RS_FACADE_HOST_MyConnection: 172.19.91.150
LDM_RS_FACADE_PORT_MyConnection: 5432
LDM_RS_FACADE_DATABASE_MyConnection: ldm_rs_facade
LDM_RS_FACADE_USER_MyConnection: postgres
LDM_RS_FACADE_PASSWORD_MyConnection: "123456"
Переменные в шаблоне передаются в тегах
В отчетах могут выбираться данные, относящиеся к пользователю, запросившему отчет. Это может быть вызвано, как соображениям безопасности данных, так и назначением отчета. В первом случае пользователь, вызывающий отчет, не должен иметь возможности подставить другой идентификатор, отличный от своего. Во втором случае – это может быть лишь наиболее вероятное требуемое значение параметра, и пользователь может изменить значение параметра.
Контроллер запросов сохраняет владельца запроса в поле ReportRequests.owner, а построитель запросов в последствии использует его для получения информации из сервиса «Информация о пользователях».
Сервис отчетов поддерживает пользовательские макросы.
Пользовательские макросы
| Макрос | Тип | Описание |
|---|---|---|
| %(user)% | string | Имя пользователя – UserInfoDto.preferredUserName |
| %(roles)% | string[] | Список ролей пользователя – UserInfoDto.roles |
| %(groups)% | string[] | Список групп пользователя – UserInfoDto.groups |
| %(user.attributeName)% | * | Атрибут пользователя – UserInfoDto. |
Пример JSON UserInfoDto:
{
"sub": "cfd6a2b4-c4cc-4735-bc6d-9dbb8b22ef00",
"preferredUsername": "admin",
"givenName": "Администратор",
"familyName": "Всея LDM",
"groups": [
"/Group_12",
"/Group_18",
"/group 1 test/subGroup 1 test"
],
"roles": [
"offline_access",
"ROLE_OWNER_CLASS_product_dossier",
"admin",
"ROLE_OWNER_CLASS_READ_ONLY",
"anton_DATA"
],
"attributes": {
"address": [
"г. Москва"
],
"phone": [
"3213213213"
],
"locale": [
"ru"
],
"department": [
"moscow"
],
"snils": [
"103-713-617 15"
],
"departmentCode": [
"2321321"
]
},
"email": "admin@lanit.ru",
"emailVerified": true
}
Если макрос используется для ограничения доступа к данным витрины со стороны пользователя, то для этого параметра шаблона не должно быть соответствующего бизнес-объекта «ReportParamItems».