Правила обработки шаблонов

Шаблон представлен в виде 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"

Переменные в шаблоне передаются в тегах . При обработке параметры шаблона (ReportParamItems) соотносятся с переменными по наименованию: = {ReportParamItems.name}.

В отчетах могут выбираться данные, относящиеся к пользователю, запросившему отчет. Это может быть вызвано, как соображениям безопасности данных, так и назначением отчета. В первом случае пользователь, вызывающий отчет, не должен иметь возможности подставить другой идентификатор, отличный от своего. Во втором случае – это может быть лишь наиболее вероятное требуемое значение параметра, и пользователь может изменить значение параметра.

Контроллер запросов сохраняет владельца запроса в поле 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».