Creare/modificare/eliminare un report
Il report si configura tramite un file XML. È necessario definire:
- La query sul database di Systancia Identity per recuperare le informazioni desiderate,
- Le proprietà di ogni colonna da visualizzare, in formato XML: tipo di oggetto, nome nel database SQL, nome da visualizzare, indice di visualizzazione, ecc.
- Le opzioni di visualizzazione dei grafici (grafico a barre, grafico a torta, punti colorati).
Fare clic sul pulsante «New report» per creare e configurare un nuovo report.
Selezionare un report e fare clic sul pulsante «Modify» per modificarne la configurazione.

Proprietà di un report
| Parametro |
Descrizione |
Tipi e valori possibili |
| Name |
Nome visualizzato del report. |
Stringa di caratteri. Obbligatorio. |
| Code |
Corrisponde all'ID dell'oggetto. Il suo valore deve essere univoco tra tutti i report. |
Stringa di caratteri , senza spazi né caratteri speciali. Obbligatorio |
| Category |
Categoria di report in cui verrà visualizzato l'elenco dei report. |
Elenco di categorie predefinite. |
| Description |
|
Stringa di caratteri. |
| XML |
Tag XML che descrivono la query SQL nel database Hpliance, le proprietà di ogni colonna del report e le proprietà degli elementi grafici. |
Testo in formato XML. |
| Choice of report template |
Modello grafico del report (in aggiunta alla tabella dei dati). |
Without chart, Histogram, Stacked histogram, Pie chart o Color ball by threshold. |
| With parameters |
Consente di aggiungere variabili immesse dall'utente. È necessario aggiungere il tag all'XML. |
Casella di controllo. |
Scrivere l'XML di un report semplice
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>
|
Esempio: elenco degli utenti senza numero di telefono
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>
|
Tag XML che descrivono le colonne di un report
| Tag XML |
Definizione |
Valori possibili |
| Name |
Nome del campo così come è definito nella query SQL. |
Stringa di caratteri. |
| Column_Link_Id |
Serve a creare colonne contenenti dati su cui è possibile fare clic. Corrisponde al nome della colonna che contiene l'ID utilizzato per gestire il collegamento. |
Stringa di caratteri. Facoltativo |
| ObjectType |
Tipo di oggetto di destinazione del collegamento su cui è possibile fare clic (Identity, struttura). |
Identity = 1 => Reindirizzamento alla pagina userDetails.aspx |
|
|
Structure = 2 => Reindirizzamento alla pagina structure.aspx |
|
|
Facoltativo |
| DisplayName |
Nome della colonna da visualizzare nell'interfaccia. |
Stringa di caratteri. |
| Visible |
Indica se la colonna è visualizzata o nascosta. |
'TRUE' o 'FALSE' |
| DisplayIndex |
Indice della colonna (ordine di visualizzazione). |
Numero intero maggiore di 0 |
Aggiungere parametri immessi dall'utente nel report: tag
Selezionare la casella di controllo «With parameters» e aggiungere i tag seguenti all'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>
|
Esempio: autorizzazioni in scadenza
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>
|
Tag XML in <Parameter> che descrivono i parametri che possono essere immessi dall'utente:
| Tag XML |
Definizione |
Valori possibili |
| Variable |
Nome della variabile utilizzata nella query SQL (senza la @). |
Stringa di caratteri. |
| Data Type |
Tipo di oggetto di Systancia Identity corrispondente al parametro. Se non si tratta di un tipo di oggetto di base (data, stringa, numero intero, ecc.), il parametro sarà un elenco a discesa contenente i valori possibili. |
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 |
Etichetta da visualizzare all'utente. |
Stringa di caratteri. |
| AttributeCode |
Codice attributo PSA. |
Stringa di caratteri corrispondente a un codice PSA. |
| Mandatory |
Indica se l'utente deve obbligatoriamente specificare un valore. |
'TRUE' o 'FALSE |
| DefaultValue |
Per i parametri opzionali, è il valore predefinito immesso se l'utente non inserisce nulla. |
Stringa di caratteri. |
Definire i parametri dei grafici
Selezionare il modello grafico dall'elenco a discesa e aggiungere i tag seguenti all'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
Inserire i tag seguenti nel tag :
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>
|
Cerchio colorato per soglia
Inserire i tag seguenti nel tag :
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>
|
Tradurre i nomi delle colonne di un report
Le colonne e i valori contenuti nei risultati di un report possono essere tradotti in diverse lingue.
Di seguito un esempio di report in cui le colonne sono state tradotte:
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>
|
Tag XML
- Internationaldisplayname:
- Definizione: tag utilizzato per tradurre i nomi delle colonne restituite dal report. Questo tag deve essere presente tante volte quante sono le lingue configurate in Systancia Identity.
- Attributo: Lang=«<\language_code>», dove <\language_code> rappresenta il codice lingua definito nelle impostazioni della lingua nella scheda General > Application Settings.
- Valore possibile: stringa di caratteri. Nome della colonna visualizzato nel report per la lingua.
- CultureColumnName:
- Definizione: definizione dell'XML di cultura utilizzato per tradurre il contenuto della tabella generata dal report.
- Attributo: Prop=«<\XML_Attribute>», dove <\XML_Attribute> rappresenta l'attributo della proprietà XML corrispondente ai diversi valori della colonna.
- Valore possibile: stringa di caratteri. Colonna di cultura della query SQL.
Visualizzare un report in funzione del contesto dell'utente
Nella versione 4000 di Hpliance è possibile aggiungere a un report un parametro invisibile che verrà definito in funzione della persona che esegue il report. I valori del report verranno visualizzati in funzione dei valori di un attributo utente. Ad esempio, l'utente vedrà solo i risultati relativi alla propria organizzazione.
Esempio di report: elencare tutte le autorizzazioni assegnate alle identità di una determinata struttura. Visualizzare i cognomi, i nomi, le autorizzazioni e le applicazioni di tutte le identità per le quali l'attributo di struttura "Responsibility" corrisponde all'attributo di struttura dell'utente connesso.
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>
|
Tag XML che descrivono i parametri basati sul contesto dell'utente.
- Variable:
- Definizione: nome della variabile utilizzata nella query SQL (senza la @).
- Valore possibile: stringa di caratteri.
- AttributUserConnected:
- Definizione: specifica se il parametro è definito in funzione del contesto dell'utente corrente o se deve essere immesso manualmente dall'interfaccia.
- Valore possibile:
- True: contesto dell'utente
- False: immissione manuale
- AttributeCode:
- Definizione: codice attributo PSA.
- Valore possibile: stringa di caratteri corrispondente al codice PSA.