Crear/modificar/borrar un informe
El informe se configura utilizando un archivo XML. Debe definir:
- La consulta sobre el Systancia Identity base de datos para recuperar la información deseada,
- Las propiedades de cada columna que se mostrarán en formato XML: tipo de objeto, nombre en la base de datos SQL, nombre que se mostrará, índice de visualización, etc.
- Las opciones de visualización de gráficos (gráfico de barras, gráfico circular, puntos de colores).
Haga clic en el botón "Nuevo informe" para crear y configurar un nuevo informe.
Seleccione un informe y haga clic en el botón Modificar para modificar su configuración.

Propiedades de un informe
| Parámetro |
Descripción |
Tipos y posibles valores |
| Nombre |
Nombre de visualización del informe. |
Cuadrilla de caracteres. Obligatorio. |
| Código |
Corresponde al ID del objeto. Su valor debe ser único en todos los informes. |
Cadena de caracteres, sin espacios ni caracteres especiales. Obligatorio |
| Categoría |
Categoría de informe en la que se mostrará la lista de informes. |
Lista de categorías predefinidas. |
| Descripción |
|
Cuerdas de caracteres |
| XML |
Etiquetas XML que describen la consulta SQL en la base de datos Hpliance, las propiedades de cada columna en el informe y las propiedades de los elementos gráficos. |
Texto en formato XML. |
| Elegir la plantilla de informe |
Plantilla gráfica para el informe (además de la tabla de datos). |
Sin gráfico, histograma, histograma apilado, gráfico de pastel o bola de color por umbral. |
| Con parámetros |
Le permite añadir variables introducidas por el usuario. Tendrá que añadir la etiqueta a la XML. |
Cuadro de verificación. |
Escribir el XML para un informe simple
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>
|
Ejemplo: Lista de usuarios sin número de teléfono
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>
|
| Etiqueta XML |
Definición |
Valores posibles |
| Nombre |
El nombre del campo tal como se define en la consulta SQL. |
Cuadrilla de caracteres. |
| Column_Link_Id |
Se utiliza para crear columnas que contienen datos en los que se puede hacer clic. Corresponde al nombre de la columna que contiene el ID utilizado para administrar el enlace. |
cadena de caracteres. * Opcional* |
| ObjectType |
Tipo de objeto objetivo del enlace en el que se puede hacer clic (Identity, estructura). |
Identidad = 1 => Redirección al usuarioDetails.aspx página |
|
|
Estructura = 2 => Redireccionamiento a la página de la estructura.aspx |
|
|
* Opcional * |
| DisplayName |
Nombre de la columna que se mostrará en la interfaz. |
Cuadrilla de caracteres. |
| Visible |
Indica si la columna se muestra o se oculta. |
'Verdadero' o 'FALSO' |
| Indice de visualización |
Índice de la columna (orden de visualización). |
Número entero mayor que 0 |
Añadir parámetros introducidos por el usuario en el informe: etiqueta
Seleccione la casilla de verificación "Con parámetros" y agregue las siguientes etiquetas al 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>
|
Ejemplo: Permisos que están a punto de expirar
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>
|
Etiquetas XML en <Parameter> que describen los parámetros que pueden ser introducidos por el usuario:
| Etiqueta XML |
Definición |
Valores posibles |
| Variable |
Nombre de la variable utilizada en la consulta SQL (sin el @). |
Cuadrilla de caracteres. |
| Tipo de datos |
El tipo de objeto de Systancia Identity correspondiente al parámetro. Si no es un tipo de objeto básico (fecha, cadena, entero, etc.), el parámetro será una lista desplegable que contenga los valores posibles. |
Estructura=2; Regla de autorización=3; Aplicación=4; Repositorio=5; Derecho=8; EstructuraTipo=11; Árbol=12; Perfil de administrador=18; PersonaTipo=19; Cadena=22; Número entero=23; Booleano=24; Fecha=25. |
| Etiqueta |
Etiqueta que se mostrará al usuario. |
Cadenas de caracteres. |
| Código de atributo |
Código de atributo PSA |
Cuadrilla de caracteres correspondiente a un código PSA |
| Obligatorio |
Indica si se requiere que el usuario especifique un valor. |
'Verdadero' o 'FALSO |
| DefaultValue |
Para parámetros opcionales, este es el valor predeterminado que se introduce si no hay entrada de entrada por el usuario. |
cadena de caracteres. |
Definición de los parámetros para los gráficos
Seleccione la plantilla gráfica de la lista desplegable y agregue las siguientes etiquetas al 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>
|
Histograma apilado
Se insertan las siguientes etiquetas en la etiqueta :
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>
|
Círculo de colores por umbral
Se insertan las siguientes etiquetas en la etiqueta :
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>
|
Traducción de los nombres de las columnas en un informe
Las columnas y los valores incluidos en los resultados de un informe pueden traducirse a varios idiomas.
El siguiente es un ejemplo de un informe en el que se han traducido las columnas:
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>
|
<!-- Balise XML -- Definición -- Atributo -- Valor posible --
| :--------- | :--------- | :------- | :-------------- |
| Nombre de la pantalla internacional | BBalises utilizadas para traducir el nombre de las columnas que aparecen en el informe. Identity. | - ¿Qué es eso?
** etiqueta XML **
- Nombre de la pantalla internacional:
- Definición: Etiqueta utilizada para traducir los nombres de las columnas devueltas por el informe. Debe haber tantas instancias de esta etiqueta como lenguas configuradas en Systancia Identity.
- Atributo: Lang=<\language_code> donde <\language_code> representa el código de idioma definido en la configuración de idioma en la pestaña General > Configuración de la aplicación.
- Valor posible: cadena de caracteres. Nombre de la columna que aparece en el informe para el idioma.
- Nombre de la columna de cultura:
- Definición: Definición del XML de cultura que se utiliza para traducir el contenido de la tabla generada por el informe.
- Atributo: Prop=<\XML_Attribute> donde <\XML_Attribute> representa el atributo de la propiedad XML correspondiente a los diferentes valores de la columna.
- Valor posible: cadena de caracteres. Columna de cultura de consulta SQL.
Mostrar un informe basado en el contexto del usuario
En la versión 4000 de Hpliance, es posible añadir un parámetro invisible a un informe que será definido de acuerdo a la persona que ejecuta el informe. Los valores en el informe se mostrarán de acuerdo a los valores de un atributo de usuario. Por ejemplo, sólo verán los resultados para su organización.
Ejemplo de informe: Enumerar todos los permisos asignados a las identidades en una estructura dada. Mostrar los apellidos, nombres, permisos y aplicaciones de todas las identidades para las cuales el atributo de estructura "Responsabilidad" coincide con el atributo de estructura del usuario conectado.
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>
|
Etiquetas XML que describen los parámetros basados en el contexto del usuario.
- Variable: el valor de la fuente de energía es -
- Definición: Nombre de la variable utilizada en la consulta SQL (sin el @).
- Valor posible: cadena de caracteres.
- AtributoUserConnected: - El usuario está conectado:
- Definición: especifica si el parámetro se define en función del contexto del usuario actual o si debe introducirse manualmente desde la interfaz.
- Valor posible :
- Verdadero: contexto del usuario
- Falso: Se introduce manualmente
- Código de atributo:
- Definición: código de atributo del PSA.
- Valor posible: cadena de caracteres correspondiente al código del PSA.