Създаване/промяна/изтриване на отчет
Отчетът се конфигурира чрез XML файл. Трябва да определите:
- Заявката към базата данни на CyberElements Identity за извличане на желаната информация,
- Свойствата на всяка колона за показване, във формат XML: тип обект, име в SQL базата данни, име за показване, индекс на показване и т.н.
- Опциите за показване на графиките (стълбовидна диаграма, кръгова диаграма, цветни точки).
Щракнете върху бутона „New report“, за да създадете и конфигурирате нов отчет.
Изберете отчет и щракнете върху бутона „Modify“, за да промените конфигурацията му.

Свойства на отчет
| Параметър |
Описание |
Типове и възможни стойности |
| 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.