Към съдържанието

Създаване/промяна/изтриване на отчет

Отчетът се конфигурира чрез XML файл. Трябва да определите:

  • Заявката към базата данни на CyberElements Identity за извличане на желаната информация,
  • Свойствата на всяка колона за показване, във формат XML: тип обект, име в SQL базата данни, име за показване, индекс на показване и т.н.
  • Опциите за показване на графиките (стълбовидна диаграма, кръгова диаграма, цветни точки).

Щракнете върху бутона „New report“, за да създадете и конфигурирате нов отчет.

Изберете отчет и щракнете върху бутона „Modify“, за да промените конфигурацията му.

New report

Свойства на отчет

Параметър Описание Типове и възможни стойности
Name Показвано име на отчета. Низ от знаци. Задължително.
Code Съответства на идентификатора на обекта. Стойността му трябва да бъде уникална сред всички отчети. Низ от знаци, без интервали или специални знаци. Задължително
Category Категорията отчети, в която ще се показва списъкът с отчети. Списък с предварително зададени категории.
Description Низ от знаци.
XML XML етикети, описващи SQL заявката в базата данни на Hpliance, свойствата на всяка колона в отчета и свойствата на графичните елементи. Текст във формат XML.
Choice of report template Графичен шаблон за отчета (в допълнение към таблицата с данни). Without chart, Histogram, Stacked histogram, Pie chart или Color ball by threshold.
With parameters Позволява ви да добавите променливи, въвеждани от потребителя. Трябва да добавите етикета към XML. Квадратче за отметка.

Писане на XML за прост отчет

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<Config> 

   <!-- If there is a chart, indicate whether to display the chart on the dashboard --> 

   <DisplayGraphicInDashboard>true</DisplayGraphicInDashboard> 

   <!-- If there is a chart, indicate the chart display index on the dashboard --> 

   <DashboardDisplayIndex>0</DashboardDisplayIndex> 

   <!-- Indicates whether data is displayed as soon as the report page is accessed -->

   <DirectDisplay>true</DirectDisplay> 

   <!-- The SQL query used to retrieve the data to be displayed --> 

   <Query></Query> 

   <!-- Definition of the list of columns available to the user. --> 

   <!-- The visibility and display index of the column can be configured by the user when viewing the report.  --> 

   <Columns> 

       <!-- Definition of a column (to be duplicated as many times as necessary) --> 

       <Column> 

           <!-- The Object Type -->  

           <ObjectType></ObjectType> 

           <!-- Name of the column containing the IDs -->  

           <Column_Link_Id></Column_Link_Id> 

           <!-- The name of the field as defined in the query.  --> 

           <Name></Name> 

           <!-- The default name to display to the user.  -->  

           <DisplayName></DisplayName> 

           <!-- Indicates whether this column is visible by default. TRUE or FALSE  -->

           <Visible></Visible> 

           <!-- The default display index.  --> 

           <DisplayIndex></DisplayIndex> 

       </Column> 

   </Columns> 

</Config> 

Пример: списък на потребителите без телефонен номер

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<Config> 

   <DisplayGraphicInDashboard>true</DisplayGraphicInDashboard> 

   <DashboardDisplayIndex>0</DashboardDisplayIndex> 

   <DirectDisplay>true</DirectDisplay> 

   <Query> 

SELECT personne_uid,personne_display_name FROM PERSONNE 

WHERE personne_id NOT IN(SELECT personne_id FROM PERSONNE_MULTIVALUED WHERE personne_schema_attribut_id = 7) 

 AND personne_hidden=0 

</Query> 

   <Columns> 

       <Column> 

           <ObjectType/> 

           <Column_Link_Id/> 

           <Name/> 

           <DisplayName/> 

           <Visible/> 

           <DisplayIndex/> 

       </Column> 

       <Column> 

           <ObjectType/> 

           <Column_Link_Id/> 

           <Name>personne_uid</Name> 

           <DisplayName>UID</DisplayName> 

           <Visible>TRUE</Visible> 

           <DisplayIndex>1</DisplayIndex> 

       </Column> 

       <Column> 

           <Name>personne_display_name</Name> 

           <DisplayName>Nom</DisplayName> 

           <Visible>TRUE</Visible> 

           <DisplayIndex>2</DisplayIndex> 

       </Column> 

   </Columns> 

</Config>

XML етикети, описващи колоните на отчет

XML етикет Дефиниция Възможни стойности
Name Името на полето, както е дефинирано в SQL заявката. Низ от знаци.
Column_Link_Id Използва се за създаване на колони, съдържащи данни, върху които може да се щраква. Съответства на името на колоната, съдържаща идентификатора, използван за управление на връзката. Низ от знаци. По избор
ObjectType Тип на целевия обект на връзката, върху която може да се щраква (Identity, структура). Identity = 1 => Пренасочване към страницата userDetails.aspx
Structure = 2 => Пренасочване към страницата structure.aspx
По избор
DisplayName Име на колоната, което да се показва в интерфейса. Низ от знаци.
Visible Указва дали колоната е показана, или скрита. 'TRUE' или 'FALSE'
DisplayIndex Индекс на колоната (ред на показване). Цяло число, по-голямо от 0

Добавяне на параметри, въвеждани от потребителя, в отчета: етикет

Поставете отметка в квадратчето „With parameters“ и добавете следните етикети към XML:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  <!-- Definition of the list of parameters expected by the report request.  --> 

   <Parameters> 

       <!-- Definition of a parameter (to be duplicated as many times as necessary) -->  

       <Parameter> 

           <!-- The name of the variable as defined in the query.  -->

           <Variable></Variable> 

           <!-- The label to display to the user.  -->  

           <Label></Label> 

           <!-- An integer indicating the expected data type (see documentation for possible values) -->  

           <DataType></DataType> 

           <!-- Indicates whether the user must specify a value of ‘TRUE’ or ‘FALSE’ --> 

           <Mandatory></Mandatory> 

           <!-- For optional parameters, the default value to be used if not entered by the user.  --> 

           <DefaultValue></DefaultValue> 

       </Parameter> 

   </Parameters> 

Пример: разрешения, които скоро изтичат

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<Query>DECLARE @DateNow AS DATETIME; SELECT @DateNow = GETDATE(); SELECT * FROM vHABILITATIONS_FULL WHERE (date_debut_lien IS NULL OR @DateNow > date_debut_lien) AND date_fin_lien IS NOT NULL AND ((0 = @ApplicationId) OR (application_id = @ApplicationId)) AND DATEADD(dd, @NbJours, @DateNow) > date_fin_lien ORDER BY date_fin_lien ASC</Query> 

 <Parameters> 

      <Parameter> 

           <Variable>ApplicationId</Variable> 

           <DataType>4</DataType> 

           <Mandatory>TRUE</Mandatory> 

           <Label>Selectionnez l'application</Label> 

       </Parameter> 

      <Parameter> 

           <Variable>NbJours</Variable> 

           <DataType>23</DataType> 

           <Mandatory>TRUE</Mandatory> 

           <Label>Sélectionnez le nombre de jour</Label> 

       </Parameter> 

   </Parameters> 

XML етикети в <Parameter>, които описват параметрите, които могат да бъдат въвеждани от потребителя:

XML етикет Дефиниция Възможни стойности
Variable Име на променливата, използвана в SQL заявката (без @). Низ от знаци.
Data Type Типът обект на CyberElements Identity, съответстващ на параметъра. Ако това не е основен тип обект (дата, низ, цяло число и т.н.), параметърът ще бъде падащ списък, съдържащ възможните стойности. Structure=2; Authorization Rule=3; Application=4; Repository=5; Right=8; StructureType=11; Tree=12; AdminProfile=18; PersonType=19; String=22; Integer=23; Boolean=24; Date=25.
Label Надпис, който да се показва на потребителя. Низ от знаци.
AttributeCode Код на атрибут PSA. Низ от знаци, съответстващ на код PSA.
Mandatory Указва дали от потребителя се изисква да зададе стойност. 'TRUE' или 'FALSE
DefaultValue За незадължителните параметри това е стойността по подразбиране, която се въвежда, ако потребителят не е въвел нищо. Низ от знаци.

Определяне на параметрите за графиките

Изберете графичния шаблон от падащия списък и добавете следните етикети към XML:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<GraphicConfig> 

       <!-- The type of graph (1=Histogram, 2=Stacked histogram, 3=Pie chart, 4=Colored ball per threshold -->  

       <GraphicType>1</GraphicType> 

       <!-- Graph title (if not specified, the report name will be used -->  

       <Title></Title> 

       <!-- The query to use to retrieve the data that will be used to generate the graph -->

       <Query></Query> 

       <!-- The name of the query field that will serve as the x-axis --> 

       <ColumnX></ColumnX> 

       <!-- The name of the query field that will serve as the y-axis -->  

       <ColumnY></ColumnY> 

       <!-- The label of the x-axis -->  

       <LabelX>Label of column X</LabelX> 

       <!-- The label of the y-axis --> 

       <LabelY>Label of column Y</LabelY> 

       <!-- Indicates whether the graph is in 3 dimensions --> 

       <ThreeDimension>false</ThreeDimension> 

   </GraphicConfig>

Stacked histogram

Вмъкнете следните етикети в етикета :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 <!-- 0 = each compiled block corresponds to a column of data (default value) --> 

       <!-- 1 = each compiled block corresponds to a grouping of data from a single column of data --> 

       <StackColumnMode></StackColumnMode> 

       <!-- Definition of the list of columns to stack. --> 

       <StackedColumns> 

           <!-- Definition of a column (to be duplicated as many times as necessary) -->  

           <StackedColumn> 

               <!--  StackColumnMode = 0: The name of the field that contains the data as defined in the query.  --> 

               <!--  StackColumnMode = 1: The name of the field that allows you to create stackable blocks. (YColumn contains the data) --> 

               <DataField></DataField> 

               <!-- The name to display to the user.  --> 

               <DisplayName></DisplayName> 

               <!-- Defines the color of the stacked block (HTML code or color name) --> 

               <Color></Color> 

           </StackedColumn> 

       </StackedColumns>

Цветен кръг според прага

Вмъкнете следните етикети в етикета :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!-- Definition of thresholds -->

       <Intervals> 

           <!-- Definition of a threshold (to be duplicated as many times as necessary) --> 

           <Interval> 

               <!-- Minimum threshold included --> 

               <Min></Min> 

               <!-- Maximum threshold excluded --> 

               <Max></Max> 

               <!-- Color of the ball for the defined threshold (HTML code or color name) -->

               <Color></Color> 

           </Interval> 

       </Intervals>

Превод на имената на колоните в отчет

Колоните и стойностите, включени в резултатите от отчет, могат да бъдат преведени на няколко езика.

Следва пример за отчет, в който колоните са преведени:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<Config> 

   <DisplayGraphicInDashboard>True</DisplayGraphicInDashboard> 

   <DashboardDisplayIndex>5</DashboardDisplayIndex> 

   <GraphicConfig> 

       <GraphicType>1</GraphicType> 

       <Title>Nombre de personnes par application et type de compte</Title> 

       <Query>SELECT APPLICATION.application_nom + ' - ' + compte_type_nom as Administrateur, T_PERSONNE_APPLICATION_GROUPED.total FROM (SELECT application_id, compte_type_id, COUNT(*) AS total FROM (SELECT DISTINCT personne_id, vPERSONNE_COMPTE_DROIT.application_id, compte_type_id FROM vPERSONNE_COMPTE_DROIT INNER JOIN DROIT ON DROIT.droit_id = vPERSONNE_COMPTE_DROIT.droit_id) T_PERSONNE_APPLICATION GROUP BY application_id, compte_type_id) T_PERSONNE_APPLICATION_GROUPED INNER JOIN APPLICATION ON APPLICATION.application_id = T_PERSONNE_APPLICATION_GROUPED.application_id INNER JOIN COMPTE_TYPE ON COMPTE_TYPE.compte_type_id = T_PERSONNE_APPLICATION_GROUPED.compte_type_id ORDER BY total DESC</Query> 

       <ColumnX>Administrateur</ColumnX> 

       <LabelX>Nom de l'administrateur</LabelX> 

       <ColumnY>total</ColumnY> 

       <LabelY>Nombre de compte</LabelY> 

       <ThreeDimension>false</ThreeDimension> 

   </GraphicConfig> 

   <Query>SELECT APPLICATION.application_culture, APPLICATION.application_nom, compte_type.compte_type_nom, compte_type.compte_type_culture, T_PERSONNE_APPLICATION_GROUPED.total FROM (SELECT application_id, compte_type_id, COUNT(*) AS total FROM (SELECT DISTINCT personne_id, vPERSONNE_COMPTE_DROIT.application_id,  

compte_type_id FROM vPERSONNE_COMPTE_DROIT INNER JOIN DROIT ON DROIT.droit_id = vPERSONNE_COMPTE_DROIT.droit_id)  T_PERSONNE_APPLICATION GROUP BY application_id, compte_type_id) T_PERSONNE_APPLICATION_GROUPED  INNER JOIN APPLICATION ON APPLICATION.application_id = T_PERSONNE_APPLICATION_GROUPED.application_id INNER JOIN COMPTE_TYPE ON COMPTE_TYPE.compte_type_id = T_PERSONNE_APPLICATION_GROUPED.compte_type_id ORDER BY total DESC</Query> 

   <Columns> 

       <Column> 

           <Name>application_nom</Name> 

           <DisplayName>Application</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>1</DisplayIndex> 

           <Internationaldisplayname Lang="FR">Application_FR</internationaldisplayname> 

           <Internationaldisplayname Lang="EN">Application_EN</internationaldisplayname> 

           <CultureColumnName Prop="Name">application_culture</CultureColumnName>  

       </Column> 

      <Column> 

           <Name>compte_type_nom</Name> 

           <DisplayName>Compte type</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>2</DisplayIndex> 

          <Internationaldisplayname Lang="FR">Compte type</internationaldisplayname> 

           <Internationaldisplayname Lang="EN">Account type</internationaldisplayname> 

           <CultureColumnName Prop="Name">compte_type_culture</CultureColumnName>  

       </Column> 

       <Column> 

           <Name>total</Name> 

           <DisplayName>Nombre</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>3</DisplayIndex> 

           <internationaldisplayname Lang="FR">Nombre</internationaldisplayname> 

           <internationaldisplayname Lang="EN">Number</internationaldisplayname> 

       </Column> 

   </Columns> 

</Config>

XML етикет

  • Internationaldisplayname:
    • Дефиниция: етикет, използван за превод на имената на колоните, връщани от отчета. Трябва да има толкова екземпляра на този етикет, колкото езици са конфигурирани в CyberElements Identity.
    • Атрибут: Lang=„<\language_code>“, където <\language_code> представлява кода на езика, определен в езиковите настройки в раздела General > Application Settings.
    • Възможна стойност: низ от знаци. Името на колоната, показвано в отчета за съответния език.
  • CultureColumnName:
    • Дефиниция: дефиниция на XML culture, който се използва за превод на съдържанието на таблицата, генерирана от отчета.
    • Атрибут: Prop=„<\XML_Attribute>“, където <\XML_Attribute> представлява атрибута на XML свойството, съответстващ на различните стойности в колоната.
    • Възможна стойност: низ от знаци. Колоната culture на SQL заявката.

Показване на отчет въз основа на контекста на потребителя

Във версия 4000 на Hpliance можете да добавите към отчет невидим параметър, който ще бъде определян според лицето, изпълняващо отчета. Стойностите в отчета ще се показват според стойностите на потребителски атрибут. Например потребителят ще вижда само резултатите за своята организация.

Пример за отчет: изброяване на всички разрешения, присвоени на самоличностите в дадена структура. Показване на фамилните имена, собствените имена, разрешенията и приложенията на всички самоличности, за които атрибутът на структурата „Responsibility“ съответства на атрибута на структурата на свързания потребител.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
<Config> 

   <DirectDisplay>true</DirectDisplay> 

   <Query>select P.personne_id,P.personne_nom, P.personne_prenom, D.droit_nom, A.application_nom 

from vHABILITATIONS_ALL  AS VHA 

inner join LIEN_PERSONNE_STRUCTURE AS LPS ON LPS.personne_id = VHA.personne_id 

inner join DROIT AS D ON D.droit_id = VHA.droit_id 

inner join PERSONNE AS P ON P.personne_id = VHA.personne_id 

inner join APPLICATION AS A ON A.application_id = D.application_id 

where structure_id  in  

 (select * from dbo.fctSplitString(dbo.fctGetAttributeValueByPersonneIdAndPersonneSchemaAttributCode(@personneId, 'responsabilite'), '|')) 

 </Query> 

   <Columns> 

       <Column> 

           <Name>personne_id</Name> 

           <DisplayName>ID</DisplayName> 

           <Visible>False</Visible> 

           <DisplayIndex>1</DisplayIndex> 

       </Column> 

       <Column> 

           <Name>personne_nom</Name> 

           <DisplayName>Nom</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>2</DisplayIndex> 

           <ObjectType>1</ObjectType> 

           <Column_Link_Id>personne_id</Column_Link_Id> 

       </Column> 

       <Column> 

           <Name>personne_prenom</Name> 

           <DisplayName>Prénom</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>2</DisplayIndex> 

           <ObjectType>1</ObjectType> 

           <Column_Link_Id>personne_id</Column_Link_Id> 

       </Column> 

       <Column> 

           <Name>droit_nom</Name> 

           <DisplayName>Droit</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>3</DisplayIndex> 

       </Column> 

       <Column> 

           <Name>application_nom</Name> 

           <DisplayName>Application</DisplayName> 

           <Visible>True</Visible> 

           <DisplayIndex>4</DisplayIndex> 

       </Column> 

   </Columns> 

  <Parameters> 

       <Parameter> 

           <Variable>personneId</Variable> 

           <AttributUserConnected>True</AttributUserConnected> 

           <AttributeCode>personne_id</AttributeCode> 

      </Parameter> 

   </Parameters> 

</Config>

XML етикети, които описват параметрите въз основа на контекста на потребителя.

  • Variable:
    • Дефиниция: име на променливата, използвана в SQL заявката (без @).
    • Възможна стойност: низ от знаци.
  • AttributUserConnected:
    • Дефиниция: указва дали параметърът се определя въз основа на контекста на текущия потребител, или трябва да бъде въведен ръчно от интерфейса.
    • Възможна стойност:
      • True: контекст на потребителя
      • False: ръчно въвеждане
  • AttributeCode:
    • Дефиниция: код на атрибут PSA.
    • Възможна стойност: низ от знаци, съответстващ на кода PSA.