1. Tutoriales de O3

Anuncio
1. Tutoriales de O3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Agregación para Saldos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Conexión de O3 a través del protocolo XMLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Consultas MDX para reportes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Introducción a MDX de O3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Estructura y datos del cubo Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Caso 1 Lista de elementos en ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.4 Caso 2 Lista de elementos de un nivel en ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.5 Caso 3 Filtro básico en dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.6 Caso 4 Lista de elementos según jeraquía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.7 Caso 5 Combinando formas de listar elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.8 Caso 6 Combinación de varias dimensiones en ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.9 Caso 7 Ocultar elementos en ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.10 Consulta MDX de metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Fuentes de datos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Metadata pública . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Modo de Consulta Paginado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7 Soporte de Fechas Nulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8 Tutorial Exportación e Importación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9 Tutorial Expresiones First & Previous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10 Tutorial Migración O3Server.cfg a Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.11 Tutorial Nuevas Funciones Estadísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12 Tutorial O3 Enterprise Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12.1 La Estructura del ePortal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12.2 Agregando un Nuevo Espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12.3 Editando Páginas de un Espacio Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12.4 Agregando Contenido a una Página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13 Tutorial O3 Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.1 Creando un Reporte nuevo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.2 Especificando los datos a utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.3 Diseñando la forma del reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.4 Formateando la información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5 Parametrizando el reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.1 Parametrización Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.2 Parametrización en Cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.3 Parametrización con Fechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.6 Almacenando el reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14 Tutorial O3 ReportCast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.1 Declarando la Programación de un Reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.2 Agendando el envío de un Reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.3 Configurar envío de reportes en diferentes formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15 Tutorial Personalización del formato de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.16 Tutorial Sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.17 Web Services Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
5
5
6
8
8
9
9
10
10
11
11
12
14
18
20
20
22
23
26
35
36
37
39
40
42
43
44
49
53
56
56
60
65
76
77
78
78
79
86
88
90
Tutoriales de O3
A continuación se describen diversas funcionalidades de O3 en la forma de guías que orientan a los usuarios mediante ejemplos y casos
concretos.
Acceso directo a los tutoriales organizados por componentes
Reporting
Nuevo Reporteador
Lenguaje de consulta MDX para reportes
Distribución automática de reportes
Web Portal
Nuevo O3 Enterprise Portal
Análisis OLAP mediante O3 Browser (desktop y web)
Modo de consulta a demanda
Nuevas funciones estadísticas y de aplicación financiera
Nuevos cálculos con referencia a elementos de la grilla: primero y previo
Definición de Datamarts - O3Studio
Agregación para Saldos
Personalización del formato de fecha
Manejo de valores de fechas vacías o valores nulos
Metadata pública
Fuentes de datos XML
Web Services Data Source
Conexión de O3 a través del protocolo XMLA
Administración del Servidor y Actualización de Modelos
Wizard de Migración de Versiones
Exportación e Importación
Sincronización
Carga Automática de Datamarts
Agregación para Saldos
Método de Agregación para Saldos
O3 ofrece un conjunto de mecanismos de agregación orientados a tomar información en función de la disponibilidad de la misma con respecto a
una dimensión de tipo fecha. Este mecanismo es el adecuado cuando se hace una consulta y se quiere obtener la informaicón más actualizada
con respecto a la fecha que está siendo consultada.
A continuación se describen para un caso los tres mecanismos disponibles, el tercero Primero/Ultimo con datos fue introducido en la versión 5.0
Para estos ejemplos, se presenta cual es la información disponible en un modelo multidimensional para tres artículo y para la medida Stock
Disponible. En los tres casos se muestra el resultado de consultar a nivel de Mes.
Primero/Último (first/last member in dimension)
Nos trae los datos para el primer/último período sin importar si tiene datos o no. Veamos con un ejemplo, en este caso un stock de 3 artículos
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
31/1
último
Art.1
4
2
8
10
15
1
25
10
5
6
12
12
Art.2
4
2
8
10
15
0/nan
Art.3
7
2
4
10
1
1
21
10
5
0/nan
Si los datos no tuvieran valor para el último día del mes, el resultado de la consulta sería todo 0/nan.
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
Art.1
4
2
8
10
15
1
25
10
5
6
Art.2
4
2
8
10
15
Art.3
7
2
4
10
1
31/1
Último
0/nan
0/nan
1
21
10
5
0/nan
Primero/Último dinámico (dinamic first/last)
Nos trae los datos para el primer/último período en el cual hubieron datos. Para ejemplificar, volviendo al caso del stock mercaderías. Al pedir el
stock a fin de mes me retornarían no solo los productos que se movieron ese día, sino los de días anteriores que tuvieron movientos.
Nótese que para elementos diferentes se traen datos de fechas diferentes
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
31/1
Último Dinámico
Art.1
4
2
8
10
15
1
25
10
5
6
12
12
Art.2
4
2
8
10
15
Art.3
7
2
4
10
1
1
21
10
5
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
Art.1
4
2
8
10
15
1
25
10
5
6
Art.2
4
2
8
10
15
Art.3
7
2
4
10
1
15
5
31/1
Último Dinámico
6
15
1
21
10
5
5
Primero/Último con datos (First/Last with data)
Nos trae los datos para el primer/último período en el cual para algún elemento al menos existen datos, de nuevo supongamos el caso del stock.
Notese que en este caso para el día 31 no hay datos pero si para el día 30 (art.1)
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
31/1
Último con Datos
Art.1
4
2
8
10
15
1
25
10
5
6
12
12
Art.2
4
2
8
10
15
Art.3
7
2
4
10
1
1
21
10
3
5
Artículo
20/1
22/1
23/1
24/1
25/1
26/1
27/1
28/1
29/1
30/1
Art.1
4
2
8
10
15
1
25
10
5
6
Art.2
4
2
8
10
15
Art.3
7
2
4
10
1
0/nan
0/nan
31/1
Último con Datos
6
0/nan
1
21
10
3
5
5
Conexión de O3 a través del protocolo XMLA
Soporte de XMLA en O3
A partir de la versión 5.0 se agrega un componente para conexión a cubos de MSAS (o incluso de otros proveedores) a través del protocolo
XMLA.
Descripción
Los cubos se deben publicar en el servidor, pero la conexión finalmente se realiza desde el cliente. En el caso desktop esto implica que
el O3Browser se conecta al servidor XMLA, en el caso portal es el O3Portal quien lo realiza.
Autenticación
En el caso desktop, se solicita al usuario final un login específico para el servidor XMLA
En el caso portal, se especifica en la declaración del cubo en el servidor de O3, el usuario/password que se utilizará para la
conexión a XMLA.
Una vez publicado el cubo en O3Server, el usuario accede desde el O3portal o desde O3Browser de la misma manera que accede a
cubos propios de O3 Performance Suite. No hay diferencia para el usuario final entre los distintos tipos de cubos que puede navegar, lo
que significa que todas las funcionalidades de O3 Perfromance Suite están disponibles para ambos casos.
Publicación de cubos en O3Server
Es necesario publicar los cubos en el servidor para que podamos tener acceso desde O3, ya sea en modalidad desktop o web. Esta tarea es
realizada desde el componente O3 Server Administrator.
La siguiente pantalla muestra la información requerida para definir la conexión a SSAS:
Al publicar un nuevo cubo en el servidor de O3, es necesario indicar si es un cubo generado con O3 Performance Suite (opción Cubo O3 Nativo
) o por el contrario es un cubo generado por otro proveedor (opción XMLA). Este último es el caso que debemos indicar si estamos definiendo
una conexión a un cubo de SQL Server Analisis Services.
Se debe indicar la URL para conectarse a un cubo XMLA completando los siguientes campos:
URL del Web Service
Catálogo
Cubo
Usuario y contraseña son obligatorios si se desea analizar la información a través de la interfaz web de O3.
A continuación de definen los roles que tienen acceso al cubo publicado. Los roles son los definidos en O3.
Para los cubos que son accedidos por el protocolo XMLA no está disponible la restricción parcial de la información que proveen los perfiles
de acceso.
Configuración de XMLA en Microsoft SSAS
Para habilitar XMLA en SQL Server 2008:
http://bloggingabout.net/blogs/mglaser/archive/2008/08/15/configuring-http-access-to-sql-server-2008-analysis-services-on-microsoft-windows-server-20
Para habilitar XMLA en SQL Server 2005: http://www.microsoft.com/technet/prodtechnol/sql/2005/httpasws.mspx
Para habilitar XMLA en SQL Server 2000: http://technet.microsoft.com/en-us/library/aa902642(SQL.80).aspx
NOTA: Debe habilitarse "Basic Authentication" o "Anonymous Access" como mecanismo de seguridad. Debe tenerse en cuenta que con el
mecanismo "Basic" la clave se transfiere sin encriptar. Se puede habilitar HTTPS para que la comunicación se realice a través de un canal
seguro.
Consultas MDX para reportes
Consultas MDX para reportes
El objetivo de este tutorial es introducir el lenguaje de consulta MDX soportado desde la versión 5.0 de O3 como lenguaje para hacer consultas
desde el reporteador.
El tutorial está organizado en base a un conjunto de casos utilizando el modelo del cubo Demo como base de consulta. Para ver un ejemplo en
forma rápida ver más abajo.
Introducción a MDX de O3
Estructura y datos del cubo Demo
Caso 1: Lista de elementos por enumeración en ejes
Caso 2: Lista de elementos de un nivel en ejes
Caso 3: Filtro básico en dimensiones
Caso 4: Lista de elementos según jerarquía en ejes
Caso 5: Combinación de formas de listar elementos en ejes
Caso 6: Combinación de varias dimensiones en ejes (anidamiento de dimensiones)
Caso 7: Ocultar elementos en ejes
Ejemplo
Una sentencia MDX de consulta tiene la siguiente estructura básica.
SELECT
<colExpresion> ON COLUMNS,
<rowExpresion> ON ROWS
FROM <cubeName>
WHERE <filterExpresion>
Describiremos sus elementos a través de un ejemplo. Supongamos que del modelo de análisis de ventas de nombre Demo queremos consultar
las unidades vendidas en France a los clientes clasificados como Major Accounts.
La consulta MDX sería la siguiente:
SELECT
{Customers.[Major Accounts]} ON COLUMNS,
{Location.[France]} ON ROWS
FROM Demo
WHERE (Measures.[Units Sold])
El cubo conteniendo la información se indica en el FROM de la consulta. Major Acounts es un miembro del nivel de más arriba de la
dimensión Customers, por lo tanto la forma de referirse a él es mediante la expresión Customers.[Major Accounts]. En esta consulta se
ha decidido que este valor aparezca como columna en el resultado, de ahí que se declara ON COLUMNS. Análogamente, France es un
miembro del nivel más arriba de la dimensión Location. La forma de referirse a él es Location.France y para que aparezca en las filas se
especifica ON ROWS. Por último, en el WHERE de la consulta se indica la medida que se quiere utilizar. Las medidas pertenecen a una
dimensión de nombre Measures. La forma de referirse a la medida deseada en este caso es Measures.[Units Sold].
El resultado de esta consulta puede leerse: "En Francia, las unidades vendidas a los clientes clasificados como de Grandes Cuentas es 2841".
Introducción a MDX de O3
Estructura de las sentencias MDX
Una sentencia MDX de consulta tiene la siguiente estructura básica
SELECT
<colExpresion> ON COLUMNS,
<rowExpresion> ON ROWS
FROM <cubeName>
WHERE <filterExpresion>
Expresiones en O3 MDX
La estructura general de una dimensión en O3 es:
<dimension name>
<main root>
<level
...
<alternative
<level
...
<alternative
<level
...
...
name>
root1>
name>
root2>
name>
Las expresiones en O3 MDX pueden tener como prefijo ("[" y "]" se utilizan si los nombres contienen espacio):
[<dimension name>].[<root>]
donde "<root>" puede ser la raíz principal o una raíz alternativa. En caso de omitir la raíz, se asume la raíz principal.
A continuación se presentan dos ejemplos de expresiones que referencian a un elemento (miembro en la terminología de MDX). En particular,
ambas expresiones denotan el mismo elemento.
Customers.Customers.[Customer Type].[Major Accounts]
Customers.[Major Accounts]
La primera se trata de la forma completa de referenciar al elemento (nombre de dimensión.nombre de la raíz.nombre del nivel.etiqueta del
elemento) mientras que la segunda se trata de la forma más simple (nombre de dimensión.etiqueta del elemento).
Las medidas son tratadas como una dimensión y el prefijo a utilizar en este caso debe ser:
Measures
Ejemplo de una expresión que referencia a una medida:
Measures.[Units Sold]
En resumen, dado SELECT {d.r.mi}
si r es el nombre de la raíz principal de la dimensión d entonces se busca el miembro con nombre mi en la raíz principal de la dimensión
d,
sino, si r es el nombre de una raíz alternativa de la dimensión d entonces se busca el miembro con nombre mi en la raíz alternativa
correspondiente,
sino, se busca el miembro con nombre mi en la raíz principal de la dimensión con nombre d
Estructura y datos del cubo Demo
Cubo Demo
Permite el análisis de ventas de una empresa hipotética que vende bicicletas (valores de la dimensión Products). Dichas ventas (medidas por
cantidades de unidades vendidas, ganancias, costos, etc.) se pueden analizar por las dimensiones fecha (Date), clientes (Customers),
vendedores (Salesmen) y lugares geográficos (Location).
Modelo
Datos de muestra de las dimensiones visualizados en el O3 Browser
Presione sobre las imagenes para agrandarlas
Dimensión con raíces alternativas
Ejemplo de dimensión: dimensión Date
Ejemplo de raíz principal: Date
Ejemplos de raices alternativas:
Last 12 months: agrupa los últimos 12 meses,
Year-to-date: agrupa las fechas desde comienzo del año hasta el día actual,
Previous month: contiene el mes anterior con respecto a la fecha actual
Dimensión "común"
A diferencia del caso anterior, las dimensiones comunes tienen una sola raíz que es omitida ya
que tiene el mismo nombre que la dimensión. Bajo el nombre de la dimensión, se muestran
directamente los elementos del nivel de más arriba.
Ejemplo: dimensión Products
Se muestran los elementos del nivel Family (familias por las que están clasificadas las bicicletas)
Dimensión medidas
Esta dimensión al igual que en el caso anterior tiene una sola raíz que es omitida. Bajo el nombre
de la dimensión (siempre Measures) aparecen los nombres de las medidas.
Caso 1 Lista de elementos en ejes
Lista de elementos en ejes
Supongamos que se desean ver las unidades vendidas en France sólo para los tipos de clientes Major Accounts y Minor Accounts.
SELECT {Customers.[Major Accounts], Customers.[Minor Accounts]} ON COLUMNS,
{Location.[France]} ON ROWS
FROM
Demo
WHERE (Measures.[Units Sold])
Para ello se indicaron por enumeración los elementos deseados en el eje correspondiente a las columnas.
Caso 2 Lista de elementos de un nivel en ejes
Lista de elementos de un nivel en ejes
Supongamos que se quiere una visión global del comportamiento de cada uno de los vendedores con respecto a las unidades vendidas y sus
comisiones del modelo de ventas independientemente del resto de las dimensiones de análisis.
SELECT
FROM
{Measures.[Units Sold], Measures.[Commissions]} ON COLUMNS,
{Salesmen.Seller.members} ON ROWS
Demo
En esta consulta, para referirnos a todos los vendedores se hace uso del operador .Members que devuelve todos los elementos de un nivel.
Caso 3 Filtro básico en dimensiones
Filtro básico en dimensiones
Supongamos que se desea ver los ingresos (Revenue) por la venta de bicicletas Mountain bikes profesionales en los años 2002 y 2003 en US.
La siguiente consulta MDX nos provee dicha información.
SELECT {Date.Date.[2002], Date.Date.[2003]} ON COLUMNS,
{Location.[US]} ON ROWS
FROM
Demo
WHERE (Products.[Mountain Bikes].[Professional], Measures.[Revenue])
En esta consulta podemos ver el uso del WHERE. Esta parte de la consulta se utiliza para "filtrar" (slice) las dimensiones.
En este caso, de la dimensión conteniendo las medidas se elige la medida Revenue. Además, se filtra la dimensión productos, por lo que el
resultado mostrará para US los ingresos en 2002 y 2003 teniendo sólo en cuenta esa línea de bicicleta.
Por otro lado, puede verse el uso de la expresión Date.Date.[2003] para hacer referencia al año 2003. La dimensión Date del cubo Demo es
una dimensión con raíces alternativas. La expresión anterior está diciendo explícitamente a que elemento dentro de que raíz. Entrando en más
detalle, la raíz que se está utilizando Date es la raíz principal. Por lo tanto, la expresión Date.[2003] es también correcta y es interpretada
como se desea, es decir se referencia al elemento 2003 de la raíz por defecto que es la raíz principal.
Supongamos ahora que se desea ver los ingresos también por la venta de la misma línea de bicicletas en US pero en lo que va del año 2004
(suponiendo un momento que estamos en una fecha actual del 2004). La consulta MDX en este caso debe explicitamente referirse a la raíz
alternativa de manera de obtener el resultado deseado.
SELECT {Date.[Year-to-date].[2004]} ON COLUMNS,
{Location.[US]} ON ROWS
FROM
Demo
WHERE (Products.[Mountain Bikes].[Professional], Measures.[Revenue])
Caso 4 Lista de elementos según jeraquía
Lista de elementos según jerarquía
Supongamos que se quiere conocer las unidades vendidas en las distintas ciudades de France por parte de los clientes bajo el tipo denominado
Major Accounts.
La siguiente consulta MDX nos provee dicha información.
SELECT {Customers.[Major Accounts].children} ON COLUMNS,
{Location.[France].children} ON ROWS
FROM
Demo
WHERE (Measures.[Units Sold])
En esta consulta se aprovecha las jerarquías de niveles definidas para la dimensiones clientes y ubicaciones geográficas. Para referirse a las
ciudades de France e imaginándose la jerarquía como una relación familiar, se hace mención a los hijos del país France (
Location.[France].children). Análogamente, a los clientes clasificados como Major Accounts se hace mención usando
Customers.[Major Accounts].children.
Caso 5 Combinando formas de listar elementos
Combinando formas de listar elementos
Supongamos que se quiere visualizar el comportamiento de cada uno de los vendedores con respecto a todas las medidas del modelo de ventas
independientemente del resto de las dimensiones de análisis.
Esta consulta es similar al caso 2, sólo que ahora no nos interesa estudiar por tal o cual medida sino por todas aquellas que se tengan definidas
en el modelo de análisis.
SELECT
FROM
{Measures.children} ON COLUMNS,
{Salesmen.Seller.members} ON ROWS
Demo
Esta consulta hace uso del operador .children para obtener los hijos de la raíz de todas las medidas y del operador .members para hacer
referencia a todos los elementos del nivel vendedor.
Caso 6 Combinación de varias dimensiones en ejes
Combinación de varias dimensiones en ejes (anidamiento de dimensiones)
Supongamos que se desea visualizar las unidades vendidas de bicicletas Mountain Bikes profesionales y de recreación en Brasil y España en
los años 2001 y 2002.
Esta consulta involucra 3 dimensiones: productos, ubicaciones y fechas. La visualización usando 3 ejes es algo complejo y lo que en general se
quiere es presentar esta información siguiendo el formato bi-dimensional y encapsular las 3 dimensiones. La siguiente consulta MDX presenta la
información requerida combinando 2 de las dimensiones en un eje.
SELECT
{Date.[2001], Date.[2002]} ON COLUMNS,
{
(Location.[Brazil], Products.[Mountain Bikes].[Professional]),
(Location.[Brazil], Products.[Mountain Bikes].[Recreational]),
(Location.[Spain], Products.[Mountain Bikes].[Professional]),
(Location.[Spain], Products.[Mountain Bikes].[Recreational])
} ON ROWS
FROM Demo
WHERE (Measures.[Units Sold])
En esta consulta, se plantea por enumeración las combinaciones que nos interesan. El eje de las filas contiene 2 dimensiones, ubicación (
Location) y productos (Products). Se puede decir que la dimensión producto está anidada en la dimensión ubicación y se tienen todas las
combinaciones de los 2 elementos de interes de cada una de las 2 dimensiones, lo que hace que se tengan 4 tuplas en el eje de las filas. Una
tupla en MDX es una combinación de miembros de dimensiones originados de dimensiones diferentes.
Con seguridad que la pregunta que surge aqui es, ¿qué pasa si lo que se quiere visualizar es algo análogo pero considerando todas las líneas
de bicicletas Mountain Bikes contra todos los países?. Es decir, ¿qué brinda MDX, nuevamente, como alternativa a la enumeración?.
MDX brinda la función CrossJoin(). Esta función produce todas las combinaciones de 2 conjuntos (es decir, un "producto cartesiano"). Su uso
común es para situaciones como la presentada arriba combinando 2 o mas dimensiones en un único eje a los efectos de visualizar los datos bajo
la forma de una matriz bi-dimensional (valga la redundancia).
La siguiente consulta permite visualizar la información que surge de la pregunta anterior.
SELECT
{Date.[2001], Date.[2002]} ON COLUMNS,
CrossJoin(
{Location.children},
{Products.[Mountain Bikes].children}) ON ROWS
FROM Demo
WHERE (Measures.[Units Sold])
CrossJoin() espera como parámetros 2 conjuntos, de manera que si se necesita realizar un anidamiento de más de dos conjuntos, se debe
anidar la invocación a dicha función. Por otro lado, hay que tener en cuenta que los 2 conjuntos sobre los cuales se quiere hacer el producto
cartesiano deben originarse a partir de dimensiones diferentes.
Esta función ofrece una combinación interesante de conjuntos obtenibles a partir de las diferentes dimensiones pero su uso debe tener en cuenta
que se trata de una función que tiene un impacto potencial importante en la performance de la consulta MDX.
Caso 7 Ocultar elementos en ejes
Ocultar elementos en ejes
Supongamos que se desea ver la evolución en el tiempo salvo en el año 2002 de los costos por la venta de todas las líneas de bicicletas.
La siguiente consulta MDX permite obtener la información.
SELECT except(Date.Year.Members, {Date.[2002]}) on COLUMNS,
{Products.Line.Members} on ROWS
FROM
Demo
WHERE (Measures.[Cost])
Para ocultar el año 2002 se utiliza la función MDX except(). Esta función devuelve un conjunto que es la diferencia entre 2 conjuntos provistos
como argumentos.
El comportamiento por defecto de esta función es de eliminar los duplicados antes de determinar la diferencia. Este comportamiento puede ser
alterado invocando a la función except con un tercer argumento con valor ALL.
Por último, se hace notar que los 2 conjuntos provistos como argumentos a esta función debe ser originados desde la misma dimensión y debe
estra definidos al mismo nivel dentro de la dimensión.
Consulta MDX de metadata
Consulta MDX de metadata
Supongamos que se desea consultar cuales son las ciudades de Francia sin importar que valores tengan en sus medidas.
SELECT
{Location.[France].children} ON COLUMNS,
{} ON ROWS
FROM Demo
Para ello se indicó que se filtrá el conjunto vacío en ROWS, obligando a que no haya intersección de dimensiones y por lo tanto el retorno no
serán celdas del cubo sino únicamente la metadata.
En el motor de O3 la siguiente consulta es equivalente a la anterior
SELECT
{Location.[France].children} ON COLUMNS
FROM Demo
Atención
La sintaxis de la consulta anterior es soportada por el motor de O3 pero viola la especificación de MDX
La misma consulta en un motor que si siga la expecificación de MDX devolverá el valor de la medida por defecto de todas las
ciudades de Francia
Fuentes de datos XML
Fuentes de datos XML en O3
Se tiene el siguiente archivo XML, que se utilizará como fuente de datos de un modelo:
<Demo>
<Row Date="4/30/1998">
<!--Date>4/30/1998</Date-->
<ProductFamily>Mountain Bikes</ProductFamily>
<ProductLine>Professional</ProductLine>
<Product>930</Product>
<Market>France</Market>
<Place>Lille</Place>
<Salesman>Waly Brian</Salesman>
<SalesGroup>B Team</SalesGroup>
<CustomerType>Major Accounts</CustomerType>
<Customer>Doug Delorge</Customer>
<UnitsSold>7</UnitsSold>
<GrossAmount>9555</GrossAmount>
<Discount>1911</Discount>
<Cost>3850</Cost>
</Row>
...
</Demo>
Para agregar archivos XML como fuente de datos, se deben seguir los siguientes pasos:
1. Ir a Fuentes de datos, XML Data Source, Agregar XML.
2. En la solapa Descripción indicar nombre y descripción de la fuente de datos XML.
3. En la solapa General:
a. Indicar la ruta completa del archivo XML.
b. Dependiendo de la estructura del archivo XML puede que se requiera leer mas de una tupla por registro, en este caso indicar el
número de tuplas por registro.
c. En XPath Principal se muestra la estructura del archivo en forma de árbol. Seleccionar el elemento (correspondiente al tag) que
se tomará como referencia para direccionar los campos. Esta será la expresión XPath que se visualiza con formato /Demo/Row,
por ejemplo, donde Demo es el tag inicial del archivo XML, le siguen a continuación el o los tags hijos.
4. En la solapa Campos se tiene nuevamente el arbol de tags del archivo, donde se deben seleccionar los campos a utilizar. En la lista se
tendrá:
a. Los atributos del tag, que son los que tienen @ como prefijo (@Date en el ejemplo).
b. Los tags hijos, sin prefijos.
5. El tipo de dato asignado inicialmente para todos los campos es String (al igual que cuando se utilizan archivos de texto como fuentes de
datos, el usuario debe cambiar al tipo de dato correcto para cada campo). Se puede clickear Vista previa para visualizar los primeros
datos del archivo.
Nota
La utilización de campos que hagan referencia a niveles superiores en el XPath es causa directa de enlentecimiento,
tanto en la consulta realizada al momento de la construcción como al momento de solicitar una vista previa.
Se sugiere evitar la utilización de caminos "../" en el XPath en campos de fuentes XML de gran tamaño.
Formato de fechas
Sólo se soportan los siguientes formatos de fechas, la selección es automática:
MM/DD/YYYY
MM/DD/YY
Ejemplos:
3/31/1998
03/31/98
03/31/2008
Formato numérico
El separador decimal debe ser siempre '.'
Por ejemplo:
12.34
Metadata pública
La nueva capacidad para compartir metadata entre modelos multidimensionales implica el desarrollo, en primer lugar, de un modelo de
dimensiones públicas con la o las dimensiones que se reutilizarán. Luego desde un modelo tradicional se hará referencia a la o las dimensiones
de este modelo de dimensiones públicas.
En este tutorial se presenta un ejemplo para un caso habitual: la dimensión Clientes. A continuación se describen los pasos necesarios para el
desarrollo de un modelo de dimensiones públicas, la reutilización de esta dimensión desde un modelo de análisis, y la construcción de éste
último.
1. Desarrollo de modelos de dimensiones públicas
a. El primer paso para crear este tipo de modelos es definir las fuentes de datos a utilizar, la o las dimensiones (con la jerarquía
que se requiera), indicando el namespace del modelo.
b. Estos modelos no tienen medidas. Se debe verificar su estructura para comprobar que sus dimensiones pueden armarse
correctamente a partir de las fuentes de datos.
c. Estos modelos no se construyen ni se publican. Sí se deben almacenar en el servidor, quedando disponibles para usar sus
dimensiones desde otros modelos.
2. Desarrollo de modelos con referencias a dimensiones públicas
a. Para desarrollar modelos multidimensionales que hagan referencia a dimensiones públicas se deben agregar las fuentes de
datos necesarias y agregar dimension/es pública/s indicando a qué dimensión de qué modelo se hará referencia.
b. A continuación se termina de definir el modelo de la forma habitual (agregando las medidas y dimensiones comunes que sean
necesarias, y verificando el modelo).
3. Construcción de modelos con referencias a dimensiones públicas
a. La construcción de modelos que hacen referencia a dimensiones públicas es igual a la de los modelos comunes.
b. La única particularidad es que ambos modelos (el de dimensiones públicas y el que hace referencia a éste) deberán
almacenarse en el servidor de O3.
c. Luego el cubo resultante deberá construirse utilizando el .srv.
A continuación se describen estos 3 pasos en forma detallada:
1. Desarrollo de modelos de dimensiones públicas
A partir de la versión 5.0, O3 Designer permite la definición de modelos de dimensiones públicas:
Estos modelos tienen la siguiente estructura inicial:
Procedimiento para definir un modelo de dimensiones públicas:
1.
2.
3.
4.
Definir las fuentes de datos para poder construir la metadata.
Definir la o las dimensiones con la jerarquía de niveles necesaria.
No se definen medidas.
Indicar el Namespace del modelo.
Una vez finalizado el desarrollo:
1. Verificar el modelo. No se requiere el mínimo de dos dimensiones para que el modelo verifique.
2. Almacenarlo en el servidor. La extensión del archivo resultante también es .mdl.
Estos modelos no se construyen ni se publican en el Servidor de O3.
En el modelo del ejemplo se tiene una única fuente de datos de la que se obitene el código y el nombre del cliente. Estos campos se utilizan
respectivamente como clave y etiqueta corta del único nivel definido para la dimensión Clientes.
En la solapa Descripción del modelo (donde también se indica su nombre) se debe completar el campo namespace. En el modelo se le asignó
"Comercial".
Almacenar el modelo en el servidor. Desde este momento el modelo queda disponible para que sus dimensiones sean reutilizadas desde otros
modelos de análisis.
2. Desarrollo de modelos con referencias a dimensiones públicas
A partir de la versión 5.0, O3 Designer ofrece la posibilidad de definir dimensiones como referencias a dimensiones públicas.
En el siguiente ejemplo se explica el mecanismo para desarrollar un modelo multidimensional que hace referencia a una dimensión pública como
parte de la definición de su contexto.
Se definirá un modelo de análisis de cantidad y tipos de surtidores por cliente. Se reutilizará la dimensión Cliente definida en el modelo anterior.
1. Se crea un nuevo modelo. Se definen las fuentes de datos necesarias.
2. Se crea una fuente de datos (hechos) para contar los surtidores y otra para construir la dimensión Tipo surtidor.
2.
Dada la estructura de este modelo, en la consulta de hechos se debe tener el dato del cliente, para poder vincular los
hechos con la dimensión a la que se hace referencia.
3. Indicar que modelo de dimensiones públicas se utilizará, para esto, en la solapa Referencias de la definición del modelo se debe
seleccionar:
a. Prefijo (para diferenciar dimensiones de igual nombre en modelos dentro del mismo namespace)
b. Namespace (se carga al seleccionar el modelo)
c. Url del modelo (recordar que los modelos de dimensiones públicas deben almacenarse en el servidor).
En caso de querer quitar una referencia a un modelo de dimensiones públicas se la debe seleccionar en esta
solapa y presionar Remover. Con esto el modelo desaparecerá del arbol de modelos a los que se puede
hacer referencia.
4. Para agregar la dimensión Cliente se debe utilizar:
Se solicitará usuario y contraseña para acceder al servidor. Indicar nombre y descripción de la dimensión en la solapa Descripción.
5. Una vez ejecutado el punto 3 se tiene disponible la lista de dimensiones públicas del modelo seleccionado. Esta lista se presenta en
forma de árbol en la solapa General de la definición de la dimensión Cliente:
Se debe seleccionar la dimensión a utilizar y presionar el botón para agregarla. En ese momento se carga el Catálogo (modelos),
Recurso (nombre del modelo) y Nombre Dimensión. Con este paso queda definida la dimensión Cliente.
6. En caso de que se quiera agregar una nueva referencia a otro modelo, en la parte inferior del árbol se tiene un botón Importar que
también solicita prefijo, namespace y url del modelo. El nuevo modelo seleccionado se agregará a la lista que se muestra en el árbol.
Este método es una alternativa al comentado en el punto 4:
3. Construcción de modelos con referencias a dimensiones públicas
Una vez publicado el modelo en el O3 Server Administrator se debe construir el mismo utilizando los Parámetros de Actualización del cubo
(archivo .srv).
En el caso que el modelo de dimensiones públicas contenga parámetros definidos, es necesario que dichos parámetros sean definidos en el
modelo que hace referencia a las dimensiones públicas. De modo que la construcción utilizando un archivo .cfg pueda resolverlos en forma
adecuada.
Durante la fase inicial de construcción del modelo la fuente de datos (query) utilizada en el modelo de dimensiones públicas es verificada. Luego,
en la fase de construcción de la metadata es ejecutada. En ambos casos se la trata como si fuera una fuente mas del modelo:
...
Debug: Add a new format from CuboDimPublicas to Nuevo Cubo with source name Clientes
Notificaci¾n: Executing query: Surtidores
Notificaci¾n: La fuente Surtidores pas¾ la verificaci¾n.
Notificaci¾n: Executing query: Tipos
Notificaci¾n: La fuente Tipos pas¾ la verificaci¾n.
Notificaci¾n: Executing query: Clientes
Notificaci¾n: La fuente Clientes pas¾ la verificaci¾n.
Fase: Verificando definici¾n de niveles de redundancia.
Fase: Verificando definici¾n de niveles de redundancia.
Notificaci¾n: Verificando InputSet Full
Fase: Fuente de Datos "Surtidores": Verificando.
Fase: Fuente de Datos "Tipos": Verificando.
Fase: Fuente de Datos "Clientes": Verificando.
Fase: "Nuevo Cubo" Verificando campos duplicados.
Fase: "Nuevo Cubo" Verificando dimensiones.
Fase: "Nuevo Cubo" Verificando dimensiones.
Fase: Verificando Dimensi¾n "Clientes".
Fase: Verificando nivel de dimensi¾n "Cliente".
Fase: Verificando Dimensi¾n "Tipo".
Fase: Verificando nivel de dimensi¾n "tipo".
Fase: "Nuevo Cubo" Verificando medidas.
Fase: Verificando Medida "Cant".
Fase: "Cant" Verificando la definici¾n de alcance.
Fase: "Nuevo Cubo" Verificando campos virtuales.
Fase: "Nuevo Cubo" Verificando campos virtuales.
Trace: Estructura de cubo correcta.
Debug: Creating schema
Debug: Measures set to the schema
...
Fase: Construyendo la MetaData.
Notificaci¾n: Executing query: Tipos
Fase: Total de tuplas procesadas de la fuente "Tipos": 9
Notificaci¾n: Executing query: Clientes
Fase: Total de tuplas procesadas de la fuente "Clientes": 302
Notificaci¾n: Metadata lista, se procesaron 311 tuplas.
Fase: Cargando informaci¾n en el cubo.
Notificaci¾n: Executing query: Surtidores
Fase: Total de tuplas procesadas de la fuente "Surtidores": 2,389
Notificaci¾n: Cubo cargado, 311 tuplas procesadas, 823 creadas.
Debug: Making Downward Allocation ...
...
Fase: Construyendo Fases de Redundancia.
Notificaci¾n: Fases de Redundancia construidas.
Notificaci¾n: FULL OK
...
Modo de Consulta Paginado
Modo de Consulta Paginado
Nuevo modo de consulta
El modo paginado es uno de los 3 modos posibles para realizar consultas y navegar desde el O3 Browser, los otros dos modos son el modo
gráfico y el modo de consulta mediante grillas o tablas. El modo paginado es similar al modo de Grilla, en cuanto a que presenta la información
en forma tabular, pero se diferencia en la forma de obtener el resultado: el modo paginado trae una cantidad limitada de información en cada
págnia que va siendo consultada, en cambio el modo grilla es más adecuado cuando se quiere obtener toda la información del resultado de la
consulta.
El modo paginado permite navegar sobre grandes cantidades de información, permitiendo un tiempo de respuesta óptimo aún cuando el
volúmen de información resultante de la consulta sea del orden de decena o cientos de miles de registros.
Otra diferencia entre el modo Grilla y el Paginado es que las reglas sólo se definie sobre las Grillas y que el modo paginado admite expresiones
pero con algunas variantes.
El modo paginado está orientado al trabajo desde el O3 Browser Web, no esta disponible paro el O3 Browser Desktop.
Configuraciones y activación del modo paginado
El modo paginado se activa desde la barra de herramientas haciendo click en Opciones->Modo reporte
Es posible configurar la cantidad de datos que nos trae O3 en este modo, pudiendo seleccionar entre 100,250 o 500 renglones por vez. Para ello
vamos a Opciones->Tamaño de página y clickeamos en la cantidad deseada.
Navegar en el modo paginado/reporte
Para ir viendo nuevos datos aun no mostrados, solo hace falta hacer click en los links que aparecieran arriba a la derecha.
Calculos en modo paginado/reporte
El modo poginado permite hacer cálculos en forma similar a al modo grilla pero con algunas diferencias o limitaciones debido a la forma en que
trae los datos.
Función
Fila
Columna
Suma
N/D
Disponible
Max
N/D
Disponible
Min
N/D
Disponible
Prom
N/D
Disponible
Cant
N/D
Disponible
Soporte de Fechas Nulas
El nuevo soporte para fechas nulas permite trabajar con información nula para campos de tipo fecha al momento de la actuallización de los datos
del modelo multidimensional, a diferencia de versiones anteriores donde la construcción de un cubo con fechas con valores nulos era cancelada.
Esto nos permite utilizar directamente la informacion de las fuentes de datos sin necesidad de procesar estos valores ya sea peviamente a la
lectura de estos datos o a través del mecanismo de campos virtuales. Ejemplos de situaciones en las que nos interesa manejar estos valores
pueden ser: facturas impagas, clientes sin fecha de ingreso, clientes sin fecha de nacimiento,contratos sin fecha de vencimiento, etc.)
En la siguiente figura se muestra la definición de una dimensión fecha, y la designación de un nodo especial para los valores nulos de las fechas,
asignando la etiqueta apropiada para interpretar dicho valor.
Figura 1: definición de etiqueta para valores nulos en la dimensión fecha
Dependiendo de cada modelo y la interpretación de las fechas con valor nulo, se debe definir dónde ubicar este nuevo elemento fecha. Puede
ser al comienzo o al final del nivel año en la jerarquía de la dimensión fecha. Por defecto este elemento se muestra al final.
La siguiente figura muestra un ejemplo de dimensión fecha con el elemento que representa valores nulos ubicado al principio del nivel año
Figura 2: "Sin Fecha Pago" ubicado al comienzo
Tutorial Exportación e Importación
A partir de esta versión, Ideasoft O3 incorpora las funcionalidades de exportación e importación, que permiten exportar datamarts, scorecards,
modelos, reglas, acciones, escritorios, queries, reportes y expresiones públicas a un archivo a un archivo (.zip) desde el Servidor de
Administración (AdmServer), e importar desde un archivo exportado a otro servidor.
Este mecanismo puede utilizarse por ejemplo para procedimientos de migración de versiones, y para ambientes de trabajo con servidores de
producción, desarrollo, y testeo independientes. También puede utilizarse como mecanismo de respaldo de una instalación.
Exportación
A través de esta funcionalidad, se exportarán todos los elementos existentes en el servidor a un archivo .zip (dependiendo de las opciones de
exportación que se describen a continuación). Es decir, se exportarán todos los datamarts(incluyendo vistas, perfiles), tableros de control, reglas,
modelos y acciones, escritorios, queries y expresiones públicas disponibles en el servidor.
Una vez conectados al servidor en el AdmServer, ir al menú Herramientas (Tools) y seleccionando la opción 'Exportar...' ('Export...') del menú se
abre el siguiente diálogo:
Se pide al usuario que seleccione el archivo destino de la exportación (.zip), y las opciones de exportación, que incluyen:
Exportación de cubos
Completa: exporta definiciones y cubos (archivos .cube)
Definición: exporta configuración, perfiles, vistas.
No: no exporta cubos ni definiciones.
Tableros de control: exporta los tableros almacenados en el servidor (istore).
Modelos: exporta los modelos almacenados en el servidor (istore).
Reglas: exporta las reglas almacenadas en el servidor (istore).
Acciones: exporta las acciones asociadas a reglas.
Escritorios: exporta los escritorios almacenados en el servidor (istore).
Consultas: exporta las consultas (queries) almacenadas en el servidor (istore).
Reportes: exporta los reportes almacenados en el servidor (istore).
Expresiones: expxorta las expresiones públicas almacenadas en el servidor (istore).
En la exportación no se permiten seleccionar elementos individuales (se exportan todos los elementos de las categorías seleccionadas).
Si la exportación finaliza correctamente, muestra un mensaje de "Exportación exitosa" y se genera el zip en la ubicación que se indicó.
Importación
A través de esta funcionalidad, se importarán todos los elementos existentes en el archivo de origen (.zip) al servidor. Es decir, se importarán al
servidor todos los cubos (incluyendo vistas, perfiles), tableros de control, reglas, modelos, acciones, escritorios, consultas, reportes y
expresiones contenidos en el archivo origen.
En caso de existir un elemento de igual nombre en el servidor, al importar se sobreescribirá.
En el caso particular de la importación de cubos, si ya existía un cubo de igual nombre publicado en el servidor, el cubo se sobreescribe, pero se
mantiene la url de publicación en el servidor. Si el cubo no estaba publicado previamente en el servidor, es posible indicar el directorio del
servidor donde importar los cubos (por defecto, directorio cubes bajo jboss/server/default/ideasoft-o3/server) mediante la property
o3.cubes.repository.location. Además, en todos los casos el cubo se publica y se marca como disponible.
Una vez conectados al servidor en el AdmServer, ir al menú Herramientas (Tools) y seleccionando la opción 'Importar...' ('Import...') del menú se
abre el siguiente diálogo:
Se pide al usuario que seleccione el archivo origen de la importación (.zip).
Presionando el botón 'Importar' ('Import') se ejecuta la importación.
Sobre usuarios y roles
Los usuarios y roles no son exportados, por lo que el usuario deberá crear nuevamente los usuarios una vez que haya importado, para dar por
completo el proceso.
Restricciones
Actualmente no se permite una serie de acciones en lo que a exportación se refiere:
No se permite la selección de elementos puntuales a exportar e importar.
No se permite exportar únicamente un datamart (archivo .cube) sin su definición (vistas, perfiles).
La exportación no incluye archivos .srv, simulaciones, expresiones privadas, e-portal.
No se exportan permisos de istore
Actualmente el respaldo (a través de exportación) no incluye archivos .srv, simulaciones, expresiones privadas, e-portal.
Tutorial Expresiones First & Previous
Expresiones para cálculo de diferencias
Operador Previous
El operador "previous" permite obtener el valor de la celda inmediatamente superior o adyacente
La forma de llamar a la expresión es [nombre_columna,previous] o [nombre_fila,previous]
Ejemplo
Supongamos tenemos una serie de datos de ventas para diferentes meses
Para columna
Mes
Ventas
Venta mes anterior
Diferencia
[Ventas]-[Ventas,previous]
[Ventas,previous]
Enero
10
Nan
Nan
Febrero
15
10
5
Marzo
25
15
10
supogamos el mismo ejemplo pero ahora tenemos las ventas en fila en vez de columnas
Para fila
Enero
Febrero
Marzo
Ventas
10
15
25
Venta mes anterior
[Ventas,previous]
Nan
10
15
Diferencia
[Ventas]-[Ventas,previous]
Nan
5
10
Operador First
Este operador permite hacer referencia al primer valor de una serie de datos en una consulta, permitiendo hacer comparaciones con dicho valor.
El operador root.first permite hacer referencia al primer valor de una serie, ya sea esta una columna o una fila (según donde sea apliacdo).
La forma de utilizar la expresión es [Elemento, root.first]. Esto es la primer celda sin importar las anidaciones/cortes de control.
Cuando la expresión se utiliza en un cálculo en una columna, root.first hace referencia a la primer celda de la columna indicada, si se utiliza en
una fila hace referencia a la primer celda de la fila.
Ejemplo
Supongamos se quiere saber en una empresa cuanto más en porcentaje son las ventas respecto al primer mes.
Mes
Ventas
First
[Venta],root.first]
%Venta con respecto al primer mes
(([Ventas,root.first] / [Ventas])-1) * 100
Enero
10
10
0
Febrero
15
10
50
Marzo
25
10
150
Notas
Relación del operador First y la funcionalidad Exclude From View
El operador first despliega el valor del primer elemento visible, por lo tanto el resultado de un cálculo que utiliza el operador first, se ve afectado si
se realiza un "exclude from view" del primer elemento.
Tutorial Migración O3Server.cfg a Base de Datos
La finalidad de la migración del O3Server.cfg a base de datos es pasar toda la información que contiene (cubos publicados, vistas, etc.) a base
de datos, y seguir trabajando desde allí.
Los pasos para la migración son:
1. Creación o actualización de la base de datos.
2. Migración de los datos.
3. Configuración del O3Server para iniciarse con base de datos.
1- Actualización o creación de la Base de Datos.
No es necesario que el Servidor O3 esté levantado a no ser que se quiera usar la base Hypersonic que viene en el jboss, conectandose por
host:puerto.
Iniciar el AdmServer y en la toolBar seleccionar "Herramientas -->Generador Esquemas Base de Datos". Esto muestra la siguiente ventana:
Se configura la conexión a la base de datos:
1. Motor, las opciones posibles son SQL Server Microsoft, SQL Server Opta, Oracle, MySQL, PostgreSQL, HsqlDb, Derby, other.
2. Manejador (driver) a utilizar (debe tenerse el driver correspondiente en el servidor <InstalaciónO3>\jboss\server\default\lib)
3. Url completa a la base de datos (servidor, puerto de la base de datos, nombre de la misma, etc.). En caso de realizar la migración a una
nueva base de datos, la misma debe estar creada de antemano.
4. Usuario y contraseña (que se guardará encriptada) para la base de datos.
Además:
Config datasource
Se debe configurar <InstalaciónO3>\jboss\server\default\deploy\gserver\gserver-hsql-ds.xml, según la base de datos a la que
se quiera exportar (salvo que se vaya a utilizar Hypersonic), se debe cambiar el contenido de los siguientes tags:
<connection-url>, <driver-class>, <user-name> y <password>, y comentar <metadata>.
Configuración inicial (original):
<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
...
<driver-class>org.hsqldb.jdbcDriver</driver-class>
...
<user-name>sa</user-name>
<password></password>
...
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
Ejemplo para conexión a SQL Server:
En este caso la configuración del archivo corresponde a indicar la URL, el driver, usuario, contraseña y comentar el tag indicado.
<connection-url>jdbc:sqlserver://Server:1433;DatabaseName=PruebaO3ServerCfg;SelectMethod=cursor</connection-url>...<dri
se comenta el tag:-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional)
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
-->
Se deberá comentar la property hibernate.dialect = org.hibernate.dialect.HSQLDialect de
<InstalaciónO3>\jboss\server\default\ideasoft-o3\GServer.properties si no se va a trabajar con Hypersonic, dejando
hibernate.dialect = org.hibernate.dialect.SQLServerDialect si se va a utilizar SQL Server, por ejemplo.
Luego se tiene 3 opciones:
1- Verificar la conexión a la base con el botón "Verificar Conexion". Si la conexión es satisfactoria se mostrará un mensaje como el siguiente:
2- En caso de que se quiera crear las tablas, se debe de presionar el botón con la etiqueta "Generar Tablas". Se mostrará el siguiente mensaje:
3- Si las tablas ya existen y lo que se quiere es actualizar la estructura de las mismas, se debe de presionar el botón con la etiqueta "Actualizar
Tablas".
Se crearán/actualizarán las tablas de RBAC, E2, jwf, y las necesarias para cubos, vistas, cubos-roles, cubos-perfiles, modelos, etc.
2- Migración de los datos.
Luego de una actualización exitosa de la base de datos, se debe de proceder a migrar los datos del O3Server.cfg (cubos, vistas, etc.) a la base
de datos.
Para migrar los datos se debe:
1. Iniciar el O3 server y conectarse usando el AdmServer
2. Luego desde el AdmServer, seleccionar en la toolBar la opción "Herramientas --> Migrador de configuración del Servidor". Para realizar
la migración se debe presionar el botón con la etiqueta "Migrar" y a continuación se mostrará en el área de "Mensajes de la migración" la
información de qué se migró:
2.
3. La última linea del mensaje está avisando que ya están disponibles los cubos como para comenzar a trabajar desde base de datos.
3- Configuración del O3 Server para levantar con Base de Datos.
Luego de haber seguido los pasos anteriores se debe de bajar el servidor y editar el archivo GServer.properties para modificar la property
o3.config.dataBase de <InstalaciónO3>\jboss\server\default\ideasoft-o3\GServer.properties, con el valor "true".
Al levantar el servidor nuevamente este tomará la información que se guardó en la base de datos y toda nueva información sera guardada en
este lugar.
Como los usuarios admin y user están en RBAC, se deben crear manualmente en el AdmServer una vez que se migró a base
de datos.
Volver a trabajar con O3Server.cfg
Como ya se mencionó a partir de O3 5.0 se almancena la configuración del servidor en base de datos, a diferencia de versiones anteriores
donde la configuración era almacenada en el archivo O3Server.cfg
Para facilitar la migración desde versiones anteriores se ofrece este mecanismo que tiene por resultado eliminar el uso del O3Server.cfg y pasar
a adminsitrar en base de datos la información de cubos publicados y perfiles de acceso.
De todas formas se aclara que si se necesita volver a la situación inicial, trabajando con O3Server.cfg, el procedimiento sería:
1. Apagar la property (o3.config.dataBase = false) que se define en el archivo Gserver.properties ubicado en
<O3_DIR>\jboss\server\default\ideasoft-o3
2. Reiniciar el O3Server (Jboss).
Los cambios hechos desde la migración (publicación de nuevos cubos, creación de nuevas vistas, etc.), no se verán reflejados en el
O3Server.cfg.
Tutorial Nuevas Funciones Estadísticas
Nuevas funciones estadísticas
O3 Performance Suite continúa con la política de agregar nuevas técnicas de análisis de datos. El objetivo es potenciar aún más el poder de
análisis de este producto contemplando las solicitudes de nuestros clientes. Es así que se podrán realizar nuevos cálculos estadísticos, algunos
de ellos definiendo medidas con nuevos métodos de agregación y otros agregando cálculos a la grilla utilizando las nuevas expresiones
estadísticas desde el O3Browser.
Sin deternos en este momento a diferenciar la forma de utilización de cada una de las funciones, presentamos en la siguiente lista las nuevas
funciones estadísticas:
Función
Nombre Español
Nombre Inglés
Desviación Estándar Muestral
DesvEst
StDev
Desviación Estándar Poblacional
DesvEstP
StDevP
Varianza Muestral
Var
Var
Varianza Poblacional
VarP
VarP
Media Cuadrática
MediaCuad
QuadMean
Covarianza Muestral
Covar
Covar
Covarianza Poblacional
CovarP
CovarP
Coeficiente de Correlación
Pearson
Pearson
Distribución Normal
Normal
Normal
Inversa de la Distribución Normal
InvNormal
InvNormal
Regresión Lineal
se ofrece como nuevo tipo de gráfico
se ofrece como nuevo tipo de gráfico
Introducción de un caso de uso
Presentamos a continuación un caso de uso que utilizaremos como contexto para introducir y describir los nuevos cálculos estadísticos
incorporados. El mismo se irá desarrollando a medida que avanza este tutorial y se basa en el análisis de las ventas de vinos, modelo de análisis
distribuido con la instalación del producto O3 Perfomance Suite.
En general cuando se analiza un conjunto de datos se tiene interés en calcular primeramente las estadísticas básicas, ya que se trata del primer
conjunto de información sobre dichos datos. Algunas cálculos estadíscticos básicos son: Suma, Máximo, Mínimo, Promedio, Cantidad.
Dentro de los cálculos estadísticos avanzados se ofrece la posibilidad de calcular:
desviación estándar poblacional
varianza poblacional
media cuadrática.
Estas 3 funciones estadísticas pueden ser definidas desde el componente O3Studio al momento de especificar el modelo de análisis o pueden
ser definidas como expresiones calculadas agregadas por el usuario en el componente O3Browser.
Presentaremos a continuación cómo pueden ser especificadas al momento de definir el modelo multidimensional, es decir desde el componente
O3Studio, lo que permite armar un conjunto de medidas que facilitarán el análisis por parte de los usuarios finales.
Definición de las funciones estadísticas
Consideramos oportuno repasar cómo es la definición de estas funciones estadísticas y con qué fines suelen ser utilizadas:
Varianza
Poblacional
VarP
medida de la variabilidad de los datos en relación a su promedio poblacional. La
desventaja de la varianza es que su unidad de medida no es la misma unidad que
la de los datos originales, o sea, si los datos originales se expresan en litros, la
unidad de medida de la varianza será litros cuadrados
Desviación
Estándar
Poblacional
DesvEstP
medida de la variación de los datos en relación a su promedio poblacional. En la
práctica es mas utilizada que la varianza ya que tiene la misma unidad de medida
que los datos originales
Desviación
Estándar
Muestral
DesvEst
mide la variación de los datos en relación al promedio de la muestra
Media
Cuadrática
MediaCuad
Cómo se define la desviación estándar desde O3Studio
Para definir la desviación estándar O3 Performance Suite ofrece un nuevo método de agregación de medidas tal como se muestra en la
siguiente figura.
Figura 1. Definición de Desviación Estándar a través de Métodos de agregación
Supongamos que el Gerente de Marketing de la empresa que vende los diversos tipos de vinos espera lanzar una nueva campaña con el
objetivo de aumentar las ventas de sus productos. Por otro lado el presupuesto que le fue asignado no le permite realizar una campaña masiva
para cada uno de los diferentes vinos que su empresa comercializa. Así es que el Gerente decide hacer un análisis de las ventas de sus
productos que le permita decidir en cuáles de sus vinos concentrará su próxima campaña.
De esta forma decide obtener las siguientes estadísticas para cada uno de los tipos de vinos, a lo largo del tiempo y teniendo en cuenta el
volumen de litros vendidos:
1.
2.
3.
4.
5.
Total de litros vendidos
Promedio de litros vendidos
Desviación estándar de los litros vendidos
La máximo cantidad de litros vendidos
La mínima cantidad de litros vendidos.
Las estadísticas de máximo y mínimo valor permitirán calcular cuál es la amplitud de la cantidad de litros vendidos, dando así una idea de la
variabilidad existente en las ventas de cada uno de los tipos de vinos.
Para analizar un poco más en profundidad esta variación de las ventas en términos de litros, el Gerente analizará el promedio de las ventas
juntamente con la información de la desviación estándar.
Este conjunto de datos le permitirá determinar cuáles son los tipos de vinos que han presentado menor estabilidad en las ventas, los cuales
pueden tomados como candidatos objetivos en la campaña de marketing.
Figura 2: Resultados obtenidos
Si además de estas estadísticas se quiere agregar por ejemplo la varianza poblacional esto se puede hacer definiendo una medida derivada y
seleccionando la opción de ESTADISTICAS de esta ventana. Se elige como TIPO la varianza y como MEDIDA aquella variable que tenemos
interés que sea calculada esta estadística.
Vale resaltar que en esta ventana, las medidas mostradas son solo las medidas para las cuales ya fueron definido la desviación estándar, o sea,
si hay interés en calcular la varianza y/o la media cuadrática de alguna medida, primeramente se debe definir una medida que sea la desviación
estándar de esta.
Figura 3: Medidas derivadas: Varianza y Media Cuadrática
Algunas de estas nuevas funciones también están implementadas en el módulo Browser o sea, O3 Performance Suite permite que a través del
módulo Browser el propio usuario agregue sus cálculos estadísticos.
La diferencia entre utilizar estas nuevas funciones a nivel del O3Browser e implementarlas como métodos de agregación en O3Studio es que
como método de agregación, los datos de las ventas individuales (datos de entrada al modelo) serán utilizadas en los cálculos mientras que
cuando estas funciones son definidas directamente en O3Browser, los datos utilizados para los cálculos son los datos que están siendo
desplegados en dicho momento.
Siendo así, si nuestro interés es estudiar la variabilidad de las ventas del vino Cabernet Sauvignon, Merlot utilizando para esto las funciones de
usuarios en O3Browser, necesitaremos que los datos del cubo tengan el nivel suficiente para esto, o sea, el cubo debe permitir mirar los datos a
nivel de las ventas individuales.
Si esto es posible entonces para obtener la desviación estándar poblacional hacemos:
Figura 4. Desviación Estándar Poblacional
Si nuestro interés es estudiar la variabilidad de cada uno de los vinos del tipo corte, la función desviación estándar poblacional deberá ser
definida como DesEstP([this]) o DesEstP([group]). De esta forma obtenemos los mismos resultados que los presentados en la figura (2).
Con la flexibilidad ofrecida por O3 Performance Suite de permitir agregar funciones estadísticas dentro del conjunto de expresiones calculadas
en el Browser, los usuarios pueden continuar el análisis de sus datos desde otras perspectivas.
Por ejemplo, ahora que ya se conoce la dispersión de los datos de ventas de cada uno de los distintos tipos de vinos se puede analizar cómo
es la variabilidad de los grandes tipos de vino, o sea, será que el grupo de vino tipo Corte tiene la misma variabilidad que el tipo Varietal?
Otros cálculos interesantes para nuestro análsis, es la posibilidad de obtener el valor de la distribución Normal estándar N(0,1) dado un punto, o
sea, dado el valor de z, determinar cual es el valor de P(Z < z) donde Z ˜ N(0,1). Como generalmente z es un numero real o sea con decimales,
hay que cuidar la forma de representación de este número, o sea, si z=1,36 entonces en el momento de informar a O3 este valor hay que
asegurarse que se esta utilizando la comma y no el punto para separar la parte decimal.
Figura 5: Distribución Normal estándar N(0,1)
También se encuentra disponible la función inversa de la Normal, o sea, encontrar el valor del punto z que hace con que el área abajo de la
curva tenga la probabilidad informada.
Continuando con los análisis de datos de las ventas de vino, nuestro objetivo ahora es colaborar con el Analista Financiero en chequear la
hipótesis que la variación en los costos del vino Tannat en relación a las ventas bruta, a partir de un determinando momento pasa a ser casi
despreciable, o en otras palabras que el costo marginal tiende a cero, como muestra la figura abajo:
Figura 6: Costo Marginal por ventas
Para este análisis, en Browser seleccionamos los vinos tipo Tannat y elegimos el nivel de trimestre para la fecha. En seguida hacemos A partir
de esto, hacer la gráfica de dispersión XY:
Figura 7: Gráfica de dispersión XY - Venta Bruta x Costo
Observando esta gráfica (Figura 7) vemos que la hipótesis planteada no se se cumple, ya que la tendencia es claramente una función lineal se
puede ajustar por una recta este conjunto de datos
Figura 8: Ajuste de una función lineal
Para que sean mostrados los parámetros de la recta ajustada utilizamos la opción "Mostrar Correlación" obteniendo así la figura abajo:
Figura 9: Mostrar los valores de la recta ajustada
Las características propias de herramientas OLAP como es el caso de O3 Perfomance Suite para hacer análisis sobre distintas perspectivas nos
permite continuar analizando este conjunto de datos de una forma muy amigable. Por ejemplo si nuestro interés además de los análisis de los
datos a nivel de trimestres, hay interés en saber si estas mismas tendencias sobre las ventas de los vinos se mantienen a nivel a largo de los
meses, es suficiente cambiar el nivel de análisis de la dimensión fecha. Así podríamos seguir los con análisis intentando contestar varias
inquietudes sobre este mismo conjunto de datos.
Vale la pena resaltar que por mas que O3 Perfomance Suite no sea un producto especifico para "limpieza de datos" puede ayudar en esta tarea
ya que dispone de una gran variedad de tipos de gráficas, que en determinados casos ayudan a identificar posibles puntos extremos y/o outliers,
como es lo que ocurre con el tipo de vino "Pinot Noir, Merlot, Malbec".
Figura 10: Posible punto extremo
Si estuviéramos trabajando a nivel de la grilla entonces el cálculo de la correlación lineal sería hecho utilizando la opción "Agregar una fila
calculada" y seleccionando la función "Pearson" dentro del grupo de funciones Estadísticas.
Figura 11 : Correlación lineal de Pearson
En el grupo de funciones estadísticas avanzadas de O3 Performance Suite, además de la función de correlación lineal de Pearson, se puede
encontrar por ejemplo la covarianza (populacional o muestral),
Observación:
Es importante notar la relevancia de la cantidad de cifras decimales utilizada en los cálculos estadísticos. Veamos el siguiente ejemplo: en la
figura abajo, se puede observar que los tipos de vino varietal tiene una varianza poblacional correspondiente a 823947,46.
Figura 12. Varianza y desviación estándar poblacional
Si a partir de la varianza calculamos la desviación estándar manualmente, obtenemos:
= 2= 823947,46 = 907,715517109 907,72
el que corresponde al valor mostrado en la figura arriba.
Si a partir de la desviación estándar queremos obtener la varianza, hay que cuidar la cantidad de cifras decimales, o sea,
a) si consideramos
= 907,72 entonces 2 = (907,72)2= 823955,5984
o sea, encontramos una diferencia.
b) Simplemente con aumentar la cantidad de cifras decimales para este calculo logramos reducir sensiblemente esta diferencia:
= 907,7155 entonces 2 = (907,7155)2= 823947,4289
Tutorial O3 Enterprise Portal
Las ventajas del acceso integrado a fuentes de información y aplicaciones son experimentadas diariamente por los usuarios de Internet cuando
navegan por sitios como Yahoo, iGoogle, o MSN. La tecnología de Portales Web ofrece la posibilidad de adecuar los contenidos y las funciones
ofrecidas por los Portales Web a las necesidades e intereses de cada persona.
Actualmente es posible aplicar las ventajas de esta tecnología dentro de las organizaciones, obteniendo así un conjunto de beneficios: entornos
de trabajo más potentes, nuevos niveles de productividad, mas rápida curva de aprendizaje, adecuación de los sistemas a las necesidades de
cada familia de usuarios (o de cada individuo).
Ideasoft O3 ofrece un conjunto de componentes para llevar las capacidades de O3 al entorno de Portales Web, estos componentes responden a
un estándar (JSR-168) y se llaman O3 Portlets. Esto incluye la posibilidad de componer páginas que incorporen los principales elementos de
visualización de información: gráficos y grillas, semáforos del O3 Scorecard, alertas y resultados de reglas.
Ideasoft O3 ofrece también un nuevo Servicio de Web Portal que permite definir en minutos entornos específicos de análisis para grupos de
usuarios o usuarios individuales. Trabajando directamente a nivel del Web Browser, los administradores o el usuario final pueden construir
Dashboards de análisis pero también pueden incluir en los mismos otros Portlets que brinden información, aplicaciones de oficina (pe. agenda o
contactos) o aplicaciones de un sistema de información.
Este Tutorial
El objetivo de este tutorial es presentar el módulo O3 Enterprise Portal disponible desde la versión 5.0 de O3, brindando una guía sencilla acerca
de su uso con ejemplos concretos que pueden ser seguidos en una instalación cualquiera de O3.
El tutorial está organizado de acuerdo a los pasos necesarios para elaborar un portal que integre varias de las funcionalidades de O3, utilizando
los datos almacenados en el cubo de Vinos incluido en la instalación de O3.
Nota
El ejemplo distribuido con la versión de O3 puede accederse a través de
http://<servidor>:8080/eportal
donde <servidor> es el nombre o IP del servidor donde se encuentra el O3 Server (JBoss)
La Estructura del ePortal
Agregando un Nuevo Espacio
Editando Páginas de un Espacio Web
Agregando Contenido a una Página
La Estructura del ePortal
Esta sección describe la estructura del Enterprise Portal resaltando aquellos controles más utilizados al momento de definir y las páginas y
consumir la información.
Este tutorial utiliza la configuración por defecto del Enterprise Portal, la utilización de temas y estilos diferentes podría hacer que
varíe la disponibilidad de los controles, así como su apariencia y ubicación.
Esta imagen muestra un ejemplo de cómo se ve un página una vez terminada
En ella se pueden ver un conjunto de vistas analíticas que incluyen gráficos, tablas,
semáforos y links a otros contenidos.
La Barra de Navegación
La Barra de Navegación se encuentra disponible en la parte superior de la página y
brinda un acceso directo a otras páginas definidas dentro del mismo portal.
Como se verá más adelante las páginas se almacenan de forma jerárquica lo que facilita su administración. Por defecto, todas las páginas que
se agreguen en el primer nivel de la jerarquía serán referenciadas a través de un link en la Barra de Navegación.
Sobre la Barra de Navegación se despliega el Logo de la empresa. Este puede ser personalizado para ubicar el que corresponda en cada caso.
El Menú de Opciones
Sobre el ángulo superior derecho se encuentra el Menú de Opciones. Este control en forma de lista desplegable identifica al usuario conectado y
permite acceder a las opciones habilitadas por su perfil de acceso.Entre las operaciones más usuales se encuentran el link a información
personal de la cuenta del usuario, así como un link a los espacios web (otras páginas) a los que el usuario tiene acceso.
Un usuario administrador o con permisos de administración podrá por ejemplo
Agregar nuevo contenido a la página
Cambiar la organización del contenido usando diferentes plantillas predefinidas
Administrar las páginas (crear, modificar, mover, eliminar)
Como se mencionó anteriormente, la última opción de este menú permite pasar a otros espacios a los cuales el usuario tenga acceso. Esta
opción despliega un submenú donde se enumeran estos espacios
El área de portlets
El resto de la página queda disponible para ubicar los diferentes portlets (aplicaciones) habilitados en el portal.
La siguiente imagen muestra como cada uno de los elementos gráficos de esta área es un portlet independiente. Algunos de estos portlets
podrán desplegar información analítica como gráficas o semáforos, mientras otros podrán ser descriptivos o de navegación como el Indice que
se muestra sobre la izquierda.
Dependiendo del perfil del usuario, se podrán reubicar los portlets en distintos lugares de la página para ajustar la presentación a la necesidad
concreta de cada caso. Esta reorganización de los portlets se describe más adelante.
Agregando un Nuevo Espacio
Esta sección describe como crear un nuevo Espacio (Comunidad) y asociarle miembros para luego agregarle el contenido deseado.
Los Espacios Web
Todas las páginas que se definen en el ePortal pertenecen (están definidas) en un Espacio Web.
Estos espacios Web pueden ser de diferentes tipos.
El Espacio personal que tienen por defecto los usuarios asociados al rol Power User
Los espacios que se heredan por pertenecer a una determinada Ubicación
Los espacios que se heredan por pertenecer a una determinada Comunidad
Ubicaciones
Las Ubicaciones son un concepto geográfico que permite organizar a los usuarios de acuerdo al lugar de trabajo.
Está pensado principalmente para organizaciones de gran porte con diferentes oficinas ubicadas en lugares físicos
diferentes.
A los efectos de este tutorial no se consideran
El caso que se analiza más en detalle en este tutorial es el de las Comunidades y cómo estas permiten organizar las páginas que ven
los usuarios mediante la petenencia o no a las comunidades
Comunidades
Las comunidades son un mecanismo que permiten agrupar usuarios de acuerdo a características comunes en cuanto a la información que
manejan, los intereses que tienen o el tipo de trabajo que desempeñan.
De esta forma es posible definir comunidades a las cuales luego se afilian los usuarios pudiendo de esta forma compartir las páginas definidas
dentro de la comunidad.
Definiendo Nuevas Comunidades
La tarea de definición y mantenimiento de comunidades la realiza el Administrador el cual se identifica con la cuenta admin
1. Ingresar al portal con la cuenta de Administrador (admin)
http://<servidor>/eportal
Esto despliega la página inicial del espacio personal del usuario admin en el que ya se definieron un conjunto de portlets de
administración
2. Ubicar el portlet de administración de Comunidades
3. Presionar el botón de Añadir Comunidad
4. Indicar el nombre de la comunidad y opcionalmente una descripción
El tipo de comunidad indica el nivel de seguridad que existe para afiliarse a la comunidad. En este caso Abierto es la opción adecuada
5. Verificar que la comunidad está activa
6. Presionar el botón de Guardar para crear la comunidad
Este paso debería mostrar la nueva comunidad creada en la lista de las comunidades existentes
Asignando Miembros a una Comunidad
Una vez creada la comunidad, es necesario asignarle miembros para que puedan acceder a las páginas que dentro de ella se definan.
El usuario que creó la comunidad queda automáticamente perteneciente a la comunidad bajo el rol de Comunity Owner
1. En la lista de comunidades disponibles, presionar el botón de Acciones para dicha comunidad
Esto despliega la lista de acciones posibles
2. Seleccionar la acción de Asignar Miembros
3. Dentro de la lista de Usuarios Disponibles, seleccionar el o los usuarios deseados
4. Presionar el botón de Actualizar asignaciones
Editando Páginas de un Espacio Web
Esta sección describe como crear y administrar las páginas de un Espacio (Comunidad) para luego agregarle contenido.
Una vez creada al Comunidad es necesario agregarle por lo menos una página para luego ir colocando el contenido en forma de portlets.
1. Desplegar el Menú de Opciones hasta llegar a la comunidad que se desea modificar
2. Hacer click sobre el ícono a la derecha de las Páginas privadas
Esta acción crea una página nueva
3. Ingresar el nombre de la página
4. Presionar el botón de Guardar
Esto automáticamente deja un nuevo link a la página en la Barra de Navegación
5. Presionar ese nuevo link para ir a la página
Esta página no contendrá ningun contenido
6. Nuevas páginas se pueden agregar a la Barra de Navegación eligiendo la opción de Administrar Páginas
Para agregar una nueva página a la Barra de Navegación es importante que en la pantalla de Administración de Páginas esté
seleccionado el nombre de la Comunidad antes de agregar una nueva página de modo que quede creada en el primer nivel
Agregando Contenido a una Página
Esta sección describe como agregar contenido (portlets) a una página ya creada, así como cambiar el layout de la página y la ubicación de los
portlets.
Una vez creada y seleccionada la página, es posible ir agregando el contenido deseado
Gráficas
Tablas
Semáforos
Controles de Navegación
Textos
Imágenes
1. Asegurarse que la página donde se desea agregar nuevo contenido está seleccionada en la Barra de Navegación
2. Seleccionar la Opción de Añadir Portlet
Esto despliega sobre la izquierda la lista de Portlets disponibles
3. Expandir el grupo de portlets Ideasoft O3
Esto despliega la lista de portlets de O3 que pueden utilizarse
Link Selector
Portlet
Control que permite definir links a contenido de O3, accesos directos a vistas y cubos
O3 Control Portlet
Control que permite filtrar contenido de vistas (gráficas y tablas) mediante la selección de elementos de una
dimensión en un cubo.
Este control permite sincronizar varias vistas en forma simultánea
O3 Report Portlet
Portlet para inclusión de reportes desarrollados con O3 Report.
Para más detalles de los reportes consultar el Tutorial del O3 Report
O3 Rules Portlet
Despliega la lista de reglas definidas en el servidor, así como su estatus.
O3 Scorecard
Portlet
Permite desplegar indicadores de un Scorecard tanto en formato de Velocímetro como de Semáforo
O3 Strategy Map
Portlet
Despliega un Mapa de Estrategia
O3 View Portlet
Despliega una Vista de O3 tanto en formato de gráfica como de Tabla.
Este Portlet también permite visualizar Reglas en su formato de Gráfica o Tabla
4. Añadir un nuevo portlet O3 View Portlet
Esto puede hacerse mediante un click sobre el link Añadir, o arrastrando el portlet desde el grupo hasta el lugar en la página donde se
desea agregar.
Editando el Portlet
Una vez agregado el portlet, es necesario configurarlo para que despliegue la vista deseada y con el formato adecuado.
1. Hacer click sobre el ícono de Preferencias que se encuentra sobre la esquina superior derecha del portlet junto al resto de los íconos de
configuración
2.
3.
4.
5.
Esto despliega la página de preferencias del portlet donde se podrá indicar el cubo o vista a desplegar
Indicar el Cubo, Vista o Regla
Opcionalmente se puede modificar el tamaño (altura) del portlet
De ser necesario habilitar el control de Configurar para más opciones
Presionar Aceptar y luego sobre el link de Volver a la página índice
Esto retorna a la página donde ya se encuentra configurado el Portlet deseado
6. Hacer click sobre el título del portlet
Esto mostrará un área de texto donde se podrá editar el título
7. Repetir los pasos anteriores para agregar nuevos portlets
Cambiando el layout de la página
Por defecto las páginas nuevas que se crean están configuradas con un layout (plantilla de la página) de dos columnas, una angosta a la
izquierda y una ancha a la derecha.
Esta configuración se puede cambiar fácilmente para ajustar a las necesidades de cada página.
1. Seleccionar la Opción de Plantilla de página
Esto despliega una ventana con las diferentes plantilla disponibles
2. Seleccionar la plantilla deseada
Los portlets existentes se ajustan a la nueva organización
3. De ser necesario es posible arrastrar los portlets de una región a otra
Para ello los portlets se arrastran desde la zona de título de cada portlet y se sueltan en las regiones que se muestran sombreadas
Tutorial O3 Report
O3 Report
A partir de esta versión, Ideasoft O3 incorpora un nuevo componente para generación de reportes estáticos. Este componente está fuertemente
basado en Eclipse BIRT, que ha sido extendido para integrarse con los modelos multidimensionales de O3.
Este nuevo componente de Ideasoft O3, incluye un entorno de creación de reportes (a nivel del Desktop), un entorno de ejecución de los mismos
a nivel del Web y del Desktop. El acceso a los modelos multidimensionales desde el reporteador puede hacerse en forma simplificada mediante
referencias a vistas o utilizando el lenguaje de consultas multidimensionales MDX. O3 soporta para esto un subconjunto de las sentencias de
consulta de MDX que es un estándar de facto de la industria.
Mediante este componente, los reportes de O3 pueden generar excelentes niveles de presentación en múltiples formatos, incluyendo PDF,
HTML, MS WORD, etc., creados a partir de información proveniente de los modelos multidimensionales así como en forma directa de las bases
de datos relacionales.
Este módulo se encuentra totalmente integrado con las capacidades analíticas de O3 lo cual representa una extensión significativa de las
capacidades de O3 en cuanto a la explotación de datos.
Este Tutorial
El objetivo de este tutorial es presentar el módulo para generación de reportes disponible desde la versión 5.0 de O3, brindando una guía sencilla
acerca de su uso con ejemplos concretos que pueden ser seguidos en una instalación cualquiera de O3.
Se recomienda además la lectura del material bibliográfico detallado en la sección de bibliografía más abajo para reportes más complejos o por
detalles específicos de la herramienta.
El tutorial está organizado de acuerdo a los pasos necesarios para construir un reporte vistoso utilizando los datos almacenados en el cubo de
Vinos incluido en la instalación de O3.
Creando un Reporte nuevo
Especificando los datos a utilizar
Diseñando la forma del reporte
Formateando la información
Parametrizando el reporte
Almacenando el reporte
Bibliografía
Libro
Autor
BIRT - A Fild Guide te Reporting
Diana Peh/Aletha Honnemann/Nola Hauge
Creando un Reporte nuevo
Esta sección describe cómo construir un nuevo reporte paso a paso utilizando un ejemplo sencillo con datos que provienen del cubo Vinos
distribuido con el producto.
El ejemplo terminado puede consultarse aquí.
Creando un nuevo Reporte
Los reportes pueden crearse de dos formas diferentes:
Comenzando con un diseño en blanco.
Usando una plantilla prediseñada de reporte. En este caso se sugieren los pasos necesarios para ir armando el reporte ajustándose a
un diseño preestrablecido.
A los efectos de este tutorial se utiliza un reporte en blanco.
1. Seleccione la opción de menú File->New Report
2. Ingrese mi_reporte.rptdesign como nombre del Reporte
3. Seleccione Blank Report y finalmente presione el botón Finish
Con estos pasos queda disponible en nuevo reporte para comenzar a ubicar los elementos sobre él
Especificando los datos a utilizar
Antes de poder diseñar el reporte es necesario especificar sobre qué datos se trabajará y cuál será el mecanismo de conexión.
Este tutorial construye un reporte utilizando datos almacenados en un cubo de O3.
La extracción de estos datos se realiza mediante 2 pasos:
Definir la fuente de datos (data source)
Definir el conjunto de datos (data set)
Es posible tener varios conjuntos de datos definidos sobre la misma fuente de datos
Definiendo una Fuente de Datos (Data Source)
1. Seleccione la opción del menú Data->New Data Source para crear una nueva Fuente de datos
2. Elija el tipo de fuente de datos para O3 (O3 Data Source)
Esto permite definir una fuente de datos a cubos y vistas de O3. Estas fuentes de datos a O3 pueden ser de dos tipos:
Fuentes que acceden a vistas almacenadas en el servidor
Fuentes que acceden a cubos almacenados en el servidor y utilizan el lenguaje MDX para especificar la consulta
3. Indique el nombre de la fuente de datos (Data Source Name)
En este ejemplo llamaremos "O3 Local" a la fuente de datos
4. Ingrese los parámetros de la Fuente de datos
Host Name:
El nombre o dirección IP del servidor donde se encuentra ejecutando O3.
En nuestro caso localhost
Port:
Puerto del servidor indicado en el parámetro anterior donde se encuentra ejecutando el servidor de O3.
En nuestro caso usaremos el puerto por defecto 7777
User Name:
Nombre del usuario definido en O3 que se usará para conectarse al servidor.
En nuestro caso usaremos el usuario user
Password:
Contraseña del usuario definido en el campo anterior
En nuestro caso usaremos la password del usuario user
Query Type:
Indica el tipo de Fuente de datos que se usará: Consulta MDX o Vista O3.
En nuestro caso O3 View
5. Verificar que la conexión se estableció en forma correcta presionando el botón Test Connection...
Definiendo un Conjunto de Datos (Data set)
Una vez definida la Fuente de datos, es posible definir los Conjuntos de Datos que se obtendrán de dicha fuente. Cada Conjunto de Datos será
una consulta diferente que como se mencinó anteriormente podrá originarse desde una vista o a través de MDX.
Sea cual sea el caso, la creación del Conjunto de Datos (Data Set) es la misma.
Para el caso concreto de este tutorial se utiliza una vista sobre el cubo de vinos que se define como se muestra en la siguiente imagen
En esta vista se seleccionan las medidas Litros Vendidos y Venta Neta como columnas y en el eje vertica se colocan las dimensiones de
Vendedores y Vinos en sus respectivos niveles Vendedor y Vino.
Una vez definida la vista y almacenada en el servidor con el nombre VinosPorVendedor con alcance público se deben seguir los siguientes
pasos:
1. Seleccione la opción del menú Data->New Data Set
1.
2. Indique el nombre del Conjunto de Datos (Data Set Name)
3. Seleccione la Fuente de datos sobre la que se desea definir el conjunto de datos
En este ejemplo la fuente de datos se llama "O3 Local".
4. Seleccionar O3 Data Set como tipo de Conjunto de Datos
5. En la ventana de definición del nuevo Conjunto de Datos, ingrese la consulta que se muestra a continuación para obtener los datos
desplegados en la vista pública VinosPorVendedor. Esta vista debe haber sido creada con aterioridad en el servidor de O3
En la consulta es importante destacar la cláusula FROM de la clausulta que hace referencia a 'Vinos/VinosPorVendedor#_public'.
Este es el nombre con el que se hace referencia a la vista necesaria para este reporte.
Vinos
Es el nombre del cubo tal como está publicado en el servidor
VinosPorVendedor
Es el nombre de la vista de donde se extraen los datos
#_public
Indica que la vista es una vista pública.
Estos datos pueden ser sacados de la barra de estado del navegador web, luego de source=Vinos/VinosPorVendedor#_public en la
página de marcadores.
6. Presionar el botón Finish para aceptar los cambios
7. La ventana que se muestra a continuación permite modificar parámetros adicionales del Conjunto de Datos, así como obtener una Vista
Preliminar (Preview Results) de la consulta
7.
Definiendo Conjuntos de Datos a través de MDX
Los pasos anteriores permitieron definir un Conjunto de Datos utilizando una vista previamente almacenada en el servidor.
O3 permite un método alternativo que no requiere salvar ninguna vista, sino que por el contrario permite al diseñador del reporte indicar la
consulta directamente en el propio reporte.
Este método alternativo utiliza el lenguaje de consulta MDX, el cual permite especificar consultas multidimensionales sobre los cubos publicados
en el servidor de O3
1. Crear una nueva fuente de datos (Data Source) llamada O3 Local MDX con los siguientes parámetros
Host Name:
localhost
Port:
7777
User Name:
user
Password:
user
Query Type:
MDX Query
2. Crear un nuevo conjunto de datos (Data Set) llamado Ventas MDX con los siguientes parámetros
Name:
Ventas MDX
Data Source:
O3 Local MDX
Data Set Type:
O3 Data Set
3. Ingresar la siguiente consulta MDX para este nuevo conjunto de datos
SELECT
{[Measures].[Litros Vendidos], [Measures].[Venta Neta]} ON COLUMNS
,CROSSJOIN({[Vendedores].[Vendedor].members}, {[Vinos].[Vino].members}) ON ROWS
FROM [Vinos]
En esta consulta se genera una tabla de datos que contendrá:
Una fila por cada Vino vendido por cada Distribuidor
Para cada combinación de Vino con Distribuidor mostrará 2 columnas (las medidas Litros Vendidos y Venta Neta)
Distribuidor
Vino
Litros Vendidos
Venta Neta
Distribuidor 1
Vino 1
10
1500
Distribuidor 1
Vino 2
15
2700
Distribuidor 2
Vino 1
13
1780
...
...
...
...
Distribuidor 3
Vino 3
12
720
La cláusula CROSSJOIN de la consulta es la que permite lograr la anidación de las dimensiones de Distribuidores y Vinos que también existía en
la Vista.
Por más detalles acerca de la sintaxis y las opciones que brinda el lenguaje MDX soportado por O3 referirse a Escribiendo consultas MDX
Diseñando la forma del reporte
Ahora que ya se definieron los datos que se utilizarán en el reporte, así como los mecanismos para obtenerlos, es posible diseñar la estructura
del reporte distribuyendo los datos en la página.
Todo reporte se organiza en diferentes secciones y estas secciones se ubican una a continuación de la otra en forma vertical.
Cada sección a su vez incluye un contenedor que es un elemento gráfico donde se ubica el resto de los componentes del reporte, como ser
etiquetas, datos, imágenes, etc.
Existen 3 tipos de contenedores
Grilla
Tabla
Lista
En este tutorial se utiliza una Tabla para ubicar los datos del reporte dada su flexibilidad y facilidad de uso. En particular la tabla permite:
Iterar a través de todos los registros provenientes de un Conjunto de Datos
Ubicar la información de una manera muy sencilla en un formato de filas y columnas
1. Active la Paleta (Pallete)
La Paleta enumera todos los elementos que se pueden distribuir en un reporte
Observar que el cuadrante de arriba a la izquierda contiene tres tab: Palette, Data Explorer, Library Explorer
2. Arrastre una tabla desde la paleta a la hoja donde se irá definiendo el reporte.
Esta acción solicita la cantidad de columnas que tendrá la tabla y la cantidad de filas de detalle necesarias. Para este ejemplo se
necesitan 4 columnas y 1 fila de detalle.
1. Active el Explorador de Datos (Data Explorer)
El Explorador de Datos permite navegar por los datos disponibles para el reporte. En particular muestra las Fuentes de Datos y
Conjuntos de Datos definidos en los pasos anteriores (O3 Local MDX y Ventas MDX respectivamente).
2. Expanda el Conjunto de Datos Ventas MDX definido para este reporte. Es posible ver los campos incluidos en dicho conjunto.
3. Arrastre cada uno de los campos para soltarlos sobre las celdas de detalle de la tabla (Detail Row).
Esta acción irá poblando la tabla y agregando en la fila de encabezado un título para cada columna. Más tarde será posible cambiar
estos encabezados.
De esta forma sencilla queda definido el reporte en su formato más básico con los datos obtenidos desde un cubo de O3.
Para ver cómo quedaría el reporte una vez ejecutado es posible seleccionar el tab Preview de la ventana de reporte o el botón View Report de
la barra de herramientas (File >> View Report >> View report in web viewer)
Ordenando los registros del reporte
Cuando la información llega desde la consulta, ésta no necesariamente viene ordenada. Al momento de definir el reporte es posible indicar un
criterio de ordenación de los datos diferente del establecido en la propia consulta o vista.
Para esto se usa el editor de propiedades.
1. Seleccionar la tabla. Esto se hace haciendo click sobre la solapa con la etiqueta Table que aparece cuando se mueve el mouse por
encima de la tabla
Al seleccionar la tabla el editor de propiedades despliega todos los atributos de la tabla que pueden ser modificados
2. Seleccione el tab Sorting para habilitar las opciones de ordenamiento de los registros de la tabla
3. Presione el botón Add para agregar un nuevo criterio de ordenamiento
4. Seleccione el campo por el cual se ordenarán los registros, por ejemplo Litros Vendidos
Es posible agregar varios campos al criterio de ordenamiento
El resultado de aplicar el nuevo orden puede observarse viendo una vista preliminar del reporte.
Agrupando registros del reporte
Muchas veces es deseable construir reportes que agrupan un conjunto de registros para facilitar su lectura o para mostrar datos adicionales para
cada grupo.
En el caso que se expone en este tutorial parece natural presentar el reporte agrupando las ventas de vino por Vendedor, de modo que el
nombre del Vendedor aparezca una única vez como encabezado del grupo y luego se muestre el detalle de los vinos vendidos por dicho
Vendedor.
Esta operación de agrupar registros dentro de un reporte comunmente se conoce como agregar Cortes de Control.
En el ejemplo generaremos un corte de control para cada Vendedor
1.
2.
3.
4.
5.
Seleccione la tabla
Seleccione el tab Groups del Editor de Propiedades para habilitar las opciones de agrupamiento
Presione el botón Add para agregar un nuevo griterio de agrupamiento
Ingrese Vendedores como nombre del grupo
Seleccione el campo Vendedor (Vendedores_Vendedor) como criterio de agrupamiento. Adicionalmente se puede elegir el orden en que
estos grupos se despliegan (ascendente o descendente)
6. Acepte los cambios en el editor de grupos
Esta acción agrega una nueva fila de encabezado y de pie para el nuevo grupo y coloca en el encabezado el campo correspondiente al
criterio de agrupamiento, en este caso el campo Vendedores_Vendedor
7. Al hacer esto tanto el campo de Vendedor en la fila de detalle, como el título de vendedor en el encabezado de la tabla, carecen de
sentido por lo que se pueden eliminar
Agregando Totales Parciales
El paso siguiente consiste en agregar los subtotales por Vendedor tanto para los Litros Vendidos como para la Venta Neta
1. Seleccionar la Paleta (Palette)
2. Arrastrar una Agregación (Aggregation) en la fila correspondiente al pie del grupo (Group Footer Row) justo debajo de Litros Vendidos
Esto despliega el Editor de Agregaciones donde se define un nuevo lazo (binding) para el subtotal deseado.
Los binding permiten asignarle un nombre a un dato cualquiera o cálculo lo cual facilita la tarea de ubicarlo luego en el reporte
3. Ingresar Subtotal Litros Vendidos como nombre del binding.
4. Seleccionar el campo Litros Vendidos como campo de datos (Data Field)
5. Seleccionar el grupo Vendedores como grupo de agregación (Aggregate On)
6. Al aceptar los cambios aparece en la tabla un nuevo elemento totalizador de la columna de Litros Vendidos por Vendedor.
7. Repetir la misma operación para la Venta Neta
Formateando la información
En esta sección se detallan los pasos necesarios para hacer que el reporte luzca mejor. En particular se verá cómo
Alinear las celdas de datos
Formateo de elementos numéricos
Formateo de los encabezados
Ajustes a la fuente utilizada
Tal como se vio en secciones anteriores, al seleccionar un elemento del reporte, el Editor de Propiedades muestra atributos relacionados con el
elemento seleccionado permitiendo así modificar su comportamiento o presentación.
Esto permite modificar el formato de cada uno de los elementos del reporte en forma independiente logrando una gran flexibilidad.
Sin embargo, también es posible ajustar el formato del reporte definiendo estilos que permitan controlar las propiedades de varios elementos
similares en forma simultánea. Este tutorial explica cómo formatear el reporte haciendo uso de los estilos.
Definiendo Estilos
En el reporte construido hasta el momento se pueden identificar los siguientes tipos de elementos
Títulos en el encabezado de la tabla
Nombre del Vendedor en el encabezado del grupo de Vendedores
Nombre del Vino en la fila de detalle
Valores numéricos correspondientes a Cantidad de Litros y Venta Neta en la fila de detalle
Subtotales para los valores numéricos
Esta clasificación sugiere la necesidad de contar con estilos diferentes para cada caso.
Estilo para el Encabezado de la Tabla
1. Seleccione la opción de menú Element -> New Style...
Esto despliega el editor de estilos. Este editor puede invocarse mediante otros mecanismos como por ejemplo botón derecho sobre el
elemento al que luego se le asignará el estilo
2. Ingrese Encabezado como nombre del Estilo (Custom Style)
3. Seleccione el grupo de atributos Text Block a la izquierda
4. Seleccione la alineación del texto (Text alignment) centrada
5. Seleccione el grupo de atributos Border
6. Defina los bordes superior e inverior de tipo Solid y de ancho 1 point
7. Acepte los cambios para cerrar el Editor de Estilos
Con esto se ha creado el nuevo estilo Encabezado el cual podrá asignarse a cualquier elemento del reporte
8. Seleccione la etiqueta Vinos_Vino del encabezado de la tabla
9. En el Editor de Propiedades de dicha etiqueta, en el grupo General, seleccione el estilo (style) recién creado
El reporte se ajustará para formatear la etiqueta de acuerdo al formato del estilo
10. Asigne el estilo a las etiquetas Litros Vendidos y Venta Neta
Estilo para el Encabezado del Grupo de Vendedores
1. Cree un nuevo estilo llamado Encabezado Grupo
2. Seleccione el grupo de atributos Background y defina como color de fondo RGB(240,240,240)
3. Asigne este estilo a la etiqueta correspondiente al nombre del Vendedor Vendedores_Vendedor
Hasta el momento el reporte debería verse similar a la siguiente figura
Juntando Celdas
El encabezado del grupo se vería más vistoso si abarcara el ancho total del reporte. Esto puede lograrse juntando celdas (Merge Cells)
1. Seleccione la celda donde se encuentra la etiqueta Vendedores_Vendedor
1.
Notar que para seleccionar la celda debe hacerse click en el espacio disponible entre las líneas de división de la tabla y el borde de la
etiqueta. Verificar en el Editor de Propiedades que se ha seleccionado la celda y no la etiqueta. El título de dicho editor debería decir
Properties Editor - Cell y no Properties Editor - Data
2. Seleccione el resto de las celdas de la fila de encabezado de grupo mientras se mantiene presionada la tecla SHIFT
La selección se irá agrandando hasta abarcar todas las celdas de dicha fila
3. Presione el botón derecho del mouse y seleccione la opción Merge Cells
Las celdas de la fila de encabezado del grupo se juntarán de modo que quede una sola que abarque el ancho total de la tabla. El estilo
con el color de fondo deja más en evidencia esto
Estilo para valores numéricos de detalle
1.
2.
3.
4.
5.
Cree un nuevo estilo llamado Valor
Seleccione el grupo de propiedades Text Block y defina la alineación a la derecha
Seleccione el grupo de propiedades Format Number
Elija el formato predefinido Fixed con 2 decimales y active el checkbox del separador de miles
Asigne este nuevo estilo a los elementos Litros Vendidos y Venta Neta de la fila de detalle
Estilo para los subtotales
1.
2.
3.
4.
Cree un nuevo estilo llamado Subtotal
Ajuste la alineación a a la derecha y el formato numérico similar al del estilo Valor
Defina un borde superior que de la idea de totalización
Asigne este nuevo estilo a los subtotales de Litros Vendidos y Venta Neta
Indentación de la fila de detalle
Por último ajustaremos el ancho de la primera columna para que tenga un tamaño fijo y dé la noción de indentación necesaria para identificar los
vinos que corresponden a cada vendedor
1. Seleccione la tabla
Esto muestra selectores para las filas y columnas alrededor de la tabla
2. Seleccione la primera columna
3. Especifique un ancho de 1 cm para dicha columna en el Editor de Propiedades
El reporte formateado debería verse más o menos así
Estilos predefinidos
Existe un conjunto de estilos ya predefinidos con la herramienta que permiten formatear elementos famosos del reporte.
Tal es el caso de tablas, filas, celdas, etc.
A continuación se muestra el editor de estilos donde se ha seleccionado la opción de Estilo Predefinido, lo cual permite seleccionar el estilo que
se desea modificar.
En particular la imagen muestra la selección del estilo report que permite configurar el formato de todo el reporte.
Parametrizando el reporte
Los reportes pueden ser parametrizados con dos tipos de parámetros:
Parámertos simples y parámetros en cascada, en los siguientes links aparecen ejemplos prácticos de como usar cada tipo de parámetro.
Parametrización Simple
En la parametrización simple los parámetros que se definen sos parametros directos sobre el reporte.
Parametrización en Cascada
Por otra parte en la parametrización en cascada los parámetros dependen entre sí, siendo recalculados al modificar alguno.
La parametrización es muy útil para trabajar con fechas, el siguiente ejemplo muestra como crear parámetros que manejen fechas.
Parametrización Simple
Con frecuencia los reportes requieren cierto grado de parametrización para que el propio usuario pueda filtrar la información que se despliega,
restringiendo así el análisis a subconjuntos de la información.
En esta sección se describe como agregar un parámetro al reporte que permita desplegar los datos de un único vendedor sin que esto afecte la
estructura del reporte.
Creando un nuevo parámetro
1. Desde el panel Data Explorer presionar el botón derecho del mouse sobre el elemento Report Parameters
2. Crear un nuevo parámetro
2.
Esta acción abre el editor de parámetros
3. Indique los siguientes datos del parámetro
Name:
El nombre del parámetro
En nuestro caso Vendedor
Data type:
Tipo de dato del parámetro
En nuestro caso String
Display Type:
Forma de mostrar los datos
En nuestro caso List Box
4. La selección de la forma en que se despliegan los datos como List Box despliega un conjunto de opciones adicionales propias de esta
forma de visualización.
La lista desplegable (list box) podrá contener opciones estáticas o dinámicas.
El caso estático permite al diseñador del reporte indicar de forma estática la lista de elementos que se incluirán en la lista.
El caso dinámico permite al diseñador definir una consulta que cargue la lista con datos almacenados, por ejemplo, en un cubo de O3
5. Indique el tipo de lista dinámica
Este tipo de parámetro requiere de la existencia de un Conjunto de Datos (Data Set) desde donde se tomarán los valores para cargar la
lista.
6. Utilizando el botón Create New... cree un nuevo Conjunto de datos como se indica a continuación:
Name
Vendedores
Data Source
O3 Local MDX
Data Set Type
O3 Data Set
7. Ingrese la siguiente consulta MDX en la especificación del Data Set
SELECT {[Vendedores].[Vendedor].members} ON COLUMNS
FROM [Vinos]
Para más detalles sobre la definición de un Data Set consultar la sección Especificando los datos a utilizar
8. Acepte los cambios del editor del Data Set
9. Complete los datos del parámetro con la nueva información:
Data Set:
Conjunto de datos al cual está asociado el parámetro.
En nuestro caso usaremos el conjunto de datos Vendedores
Select value column:
Campo del Data Set que contiene la clave del parámetro.
En nuestro caso usaremos unique_name
Select display text:
Campo del Data Set que contiene la etiqueta del parámetro a mostrar al usuario
En nuestro caso label
10. Finalmente el editor debería mostrar lo siguiente
11. Presione el botón OK para concluir la creación del Parámetro. Este aparecerá en la ventana Data Explorer bajo Report Parmeters.
En este punto es posible ejecutar el reporte para ver cómo se muestra una ventana donde se solicita el valor del parámetro de entre una lista de
opciones que son obtenidas del cubo de O3
Utilizando el Parámetro en la consulta
Una vez definido el parámetro es necesario utilizarlo en la consulta para que filtre la misma y devuelva únicamente el Vendedor seleccionado por
el usuario.
Para ello modificaremos el Conjunto de Datos (Data Set) definido en la sección Especificando los datos a utilizar.
1. Desde el Data Explorer, hacer doble click sobre el Conjunto de Datos Ventas MDX.
2. Modificar la consulta MDX para que contenga lo siguiente
SELECT
{[Measures].[Litros Vendidos], [Measures].[Venta Neta]} ON COLUMNS
,CROSSJOIN({[Vendedores].[Vendedor].?}, {[Vinos].[Vino].members}) ON ROWS
FROM [Vinos]
Notar el signo de interrogación en la sección correspondiente a las filas. Este signo marca el lugar donde se sustituirá el valor del
parámetro cuando se ejecute la consulta.
3. Seleccione Parameters en el editor del Data Set
4. Agregue un nuevo parámetro con el botón New...
5. Configure el parámetro de acuerdo a lo siguiente
Name:
El nombre del parámetro
En nuestro caso Vendedor
Data Type:
Tipo del parámetro
En nuesto caso no requiere modificación
Direction:
Dirección del parámetro (Entrada o Salida)
En nuestro caso usaremos input
Default Value:
Valor que tendrá el parámetro por defecto
En nuestro caso N/A
Linked To Report Parameter:
Parámetro al cual está asociado
En nuestro caso Vendedor
6. Finalmente resta ejecutar el reporte para ver cómo se filtran los datos para mostrar únicamente las ventas del Vendedor seleccionado
Parametrización en Cascada
En muchos casos, en los que el usuario debe elegir un valor entre una larga lista para un parámetro, es conveniente ir aproximando la búsqueda
en varios pasos.
En el caso que se desarrolla en este tutorial, hemos definido hasta el momento un parámetro para filtrar el reporte para un vendedor
determinado. Una forma de facilitar la localización del vendedor es catalogarlo primero entre Distribuidor y Venta Directa.
De esta forma se podría solicitar primero el Canal para luego elegir el vendedor de la lista de vendedores de ese canal.
Esta sección explica cómo establecer esta dependencia entre los parámetros a través de Parámetros en Cascada.
Creando Parámetros en Cascada
Nota
Se recomienda haber leido antes la sección Parametrización Simple
1. Cree un conjunto de datos (Data Set) para construir la lista de Canales
Name:
Canales
Data Source:
O3 Local MDX
Data Set Type:
O3 Data Set
Query
SELECT {[Vendedores].[Canal].members} ON COLUMNS
FROM [Vinos]
2. Cree un conjunto de datos (Data Set) para construir la lista de Vendedores de cada Canal
Name:
VendedoresDelCanal
Data Source:
O3 Local MDX
Data Set Type:
O3 Data Set
Query
SELECT {[Vendedores].?.children} ON COLUMNS
FROM [Vinos]
El signo de interrogación será luego asociado al parámetro que identifique el Canal.
Ignorar cualquier mensaje de error que se muestre debido a que no puede resolver el parámetro
3. Desde el panel Data Explorer presionar el botón derecho del mouse sobre el elemento Report Parameters
4. Crear un nuevo Parámetro en Cascada
5. Ingrese Vendedores Del Canal como nombre del Parámetro
6. Seleccione Multiple Data Set
Se utilizará un data set para cada paso del parámetro (los data sets creados en los pasos anteriores)
7. Presione el botón Add para agregar un parámetro a la cascada.
8. Ingrese los siguientes datos para el primer Parámetro:
Name:
Canal
Data Set:
Canales
Value:
unique_name
Display Text:
label
9. Presione el botón Add para agregar un segundo parámetro a la cascada.
10. Ingrese los siguientes datos para el segundo Parámetro:
Name:
VendedorDelCanal
Data Set:
VendedoresDelCanal
Value:
unique_name
Display Text:
label
11. El editor del parámetro en cascada debería quedar como se muestra
11.
12. Para continuar presione OK.
Relacionando los Parámetros de la Cascada
Hasta este punto se definió una Cascada de 2 Parámetros y 2 Conjuntos de datos, uno para cada parámetro de la cascada.
Lo que resta es relacionar los parámetros para que uno actúe sobre el otro.
1. Editar el Conjunto de Datos (Data Set) VendedoresDelCanal
2. Agregar un parámetro tal como se muestra a continuación
Probando lo realizado
Para probar lo realizado cree un nuevo Data Set con los siguientes datos:
* Name: Ventas por Canal y Vendedor
* Data Source: O3 MDX View
* Data Set Type: O3 Data Set
* Query La siguiente expresion en MDX:
SELECT
{[Vendedores].?} ON COLUMNS,
{[Vinos].[Vino].members} ON ROWS
FROM [Vinos]
WHERE Measures.[Litros Vendidos]
Nota
En la consulta aparece un signo de interrogación, lo que indica es que en ese lugar hay un parámetro.
Agregue el parámetro Vendedor Por Canal en el conjunto de datos como se indica en Parametrización Simple
Cree una tabla con la información de Ventas por Canal y Vendedor como se explica en Diseñando la forma del reporte
Seleccione Preview y aparecerá la siguiente pantalla:
En Canal aparecerán todos los canales de vendedores del cubo de Vinos, seleccione un canal y automáticamente se actualidará Vendedor Por
Canal.
En Vendedor Por Canal aparecerán todos los vendedores del canal seleccionado, seleccione un vendedor y presione OK para ver el detalle de
los litros de vinos vendidos por ese vendedor.
Por ejemplo si elige como canal "Venta Directa" y como vendedor "Federico Moreira" el repotre mostrará:
Vino
Litros Vendidos
Cabernet Sauvignon, Merlot
4500
Cabernet, Tannat, Merlot
0
Chenin, Gewurzt
2250
...
...
Ugni Blanco
0
Si usted desea cambiar el valor del parámetro deberá hacer click en Show Report Parameters y se volverá a abrir la ventana anterior,
pudiendo elegir un nuevo canal y vendedor.
Parametrización con Fechas
Esta sección describe como agregar un parámetros que manejen fechas.
El ejemplo terminado puede consultarse aquí.
Creando Parámetros sobre Fechas
Nota
Se recomienda haber leido antes Parametrización en Cascada.
En el siguiente ejemplo se muestra cómo definir un reporte donde ver litros de vinos vendidos por todos los vendedores, parametrizando en los
meses.
Primero cree un conjunto de datos (Data Set) que contenga la siguiente información:
* Name: Años
* Data Source: O3 MDX View
* Data Set Type: O3 Data Set
* Query La siguiente expresion en MDX:
SELECT {[Fecha].[Año].members} ON COLUMNS
FROM [Vinos]
Una vez definido el Data Set se podrá visulizar el mismo desde la vista Data Explorer (Explorador de datos) del O3Reporting:
Para continuar realice los siguientes pasos:
1. Haga click derecho en Report Parameters y elija la opción New Cascading Parameter y cree una cascada de parametros con nombre
Fechas.
2. Presione Add para agregar un parámetro a la cascada.
3. Ingrese los siguientes datos:
Name:
El nombre del parámetro
En nuestro caso Año
Data Set:
Conjunto de datos al cual está asociado el parámetro.
En nuestro caso usaremos el conjunto de datos Años
Value:
Valor que tendrá el parámetro.
En nuestro caso usaremos unique_name
Display Text:
Texto a mostrar en el repotye
En nuestro caso label
4. Presione OK para continuar, aparecerá la siguiente pantalla (Recuerde que Multiple Data Set debe estar seleccionado):
5. Presione OK para continuar.
6. Cree un conjunto de datos (Data Set) que contenga la siguiente información:
* Name: Meses
* Data Source: O3 MDX View
* Data Set Type: O3 Data Set
* Query La siguiente expresion en MDX
SELECT Descendants([Fecha].?, [Fecha].[Mes]) ON COLUMNS
FROM [Vinos]
7. Agregue el parámetro Año al conjunto de datos creados como se indica en Parametrización Simple
Una vez realizado el Data Set el la vista Data Explorer (Explorador de datos) de su eclipse deberá aparecer de la siguiente manera:
7.
8. Haga click derecho sobre Cascading Parameter Group - Fechas y seleccione la opción Edit. Aparecerá la siguiente pantalla:
9. Seleccione Add para agregar un nuevo parámetro a la cascada.
10. Ingrese los siguientes datos:
Name:
El nombre del parámetro
En nuestro caso Mes
Data Set:
Conjunto de datos al cual está asociado el parámetro.
En nuestro caso usaremos el conjunto de datos Meses
Value:
Valor que tendrá el parámetro.
En nuestro caso usaremos unique_name
Display Text:
Texto a mostrar en el repotye
En nuestro caso label
11. Para continuar presione OK. Aparecerá la siguiente pantalla:
12. Presione OK para continuar.
La vista Data Explorer (Explorador de datos) de su eclipse deberá aparecer de la siguiente manera:
13. Cree un conjunto de datos (Data Set) que contenga la siguiente información:
* Name: Ventas por Vendedor y Meses
* Data Source: O3 MDX View
* Data Set Type: O3 Data Set
* Query La siguiente expresion en MDX:
SELECT
{[Fecha].?} ON COLUMNS,
{[Vendedores].[Vendedor].members} ON ROWS
FROM [Vinos]
WHERE Measures.[Litros Vendidos]
14. Agregue el parámetro Meses al conjunto de datos creados como se indica en Parametrización Simple
Una vez realizado el Data Set el la vista Data Explorer (Explorador de datos) de su eclipse deberá aparecer de la siguiente manera:
15. Cree una tabla con la información de Ventas por Vendedor y Meses como se explica en Diseñando la forma del reporte
16. Seleccione Preview. Aparecerá la siguiente pantalla:
17. Seleccione el Año para el cual desea ver los litros vendidos por los vendedores. Se actualizará automáticamente los valores de Meses.
18. Seleccione el Mes para el cual desea ver el reporte.
19. Seleccione OK
Por ejemplo si elige como año "2002" y como mes "mar / 2002" el reporte mostrará:
Vino
Litros Vendidos
G & P Corp.
5850
Link S.R.L.
1800
Mykonos
0
...
...
Susana Garcia
2700
Si se desea cambiar el valor del parámetro deberá hacer click en Show Report Parameters y se volverá a abrir la ventana anterior, pudiendo
elegir un nuevo año y mes.
Almacenando el reporte
Una vez definido el reporte se debe grabar la definición del mismo. Esta operación tiene por objetivo almancenar el diseño del reporte realizado.
Para que el usuario pueda consultar el reporte es necesario que el mismo esté disponible en el servidor. Para ello es preciso Exportar el reporte
luego de ser diseñado.
1. Desde el menú File, seleccionar la opción Exportar
2. Seleccionar la opción Exportar a IStore. Esto permite que el reporte sea generado en el servidor y quede accesible para los usuarios
2.
Tutorial O3 ReportCast
Funcionamiento General
O3 Performance Suite ofrece un servicio de entrega periódica y automática de reportes, que permite distribuir información en forma ágil a los
destinatarios con la frecuencias necesaria para cada reporte.
Este nuevo componente de O3 permite la automatización de la distribución de información por email mediante una interface gráfica dónde se
controla un potente mecanismo de determinación de la oportunidad en que debe generarse la información.
Además, gracias a la declaración de instancias de proceso es posible llevar un registro los reportes generados, determinar si se presentaron
situaciones que impidieron la generación (base de datos no disponible), controlar los reintentos e intervenir manualmente para generar y
distribuir un reporte.
Este Tutorial
El objetivo de este tutorial es presentar el módulo O3 ReportCast disponible desde la versión 5.0 de O3, brindando una guía sencilla acerca de
su uso con ejemplos concretos que pueden ser seguidos en una instalación cualquiera de O3.
Activando el envío automático de reportes (ReportCast)
La utilización del ReportCast requiere la ejecución de los siguientes pasos:
1. Declarar una Programación
Consiste en una declaración de la frecuencia con que se deberá ejecutar una tarea mediante una interfaz gráfica donde el administrador
puede crearlas y asociarles un nombre.
2. Agendar un Reporte a una Programación
Para cada Reporte, se asocia al mismo una programación.
Al mismo tiempo se indican los parámetros del envío como son el destinatario y el asunto del mail.
Nota
El envío de reportes por mail requiere configurar correctamente el mailer de JBoss.
Instrucciones detalladas de cómo realizar esto pueden encontrarse aquí.
Declarando la Programación de un Reporte
Agendando el envío de un Reporte
Configurar envío de reportes en diferentes formatos
Declarando la Programación de un Reporte
Tutorial de Envío Automático de Reportes
Declarando la Programación de un Reporte
Agendando el envío de un Reporte
Configurar envío de reportes en diferentes formatos
La programación de un Reporte utiliza un mecanismo general del servidor de O3 que permite agendar diferentes tareas para su ejecución
automática.
Este mecanismo está basado en procesos de workflow lo cual facilita su monitoreo mantenimiento y ejecución.
Estas Programaciones se realizan desde el O3 Server Administrator símplemente declarando la periodicidad de la tarea.
Para más detalles consultar Declarando Programaciones
Agendando el envío de un Reporte
Tutorial de Envío Automático de Reportes
Declarando la Programación de un Reporte
Agendando el envío de un Reporte
Configurar envío de reportes en diferentes formatos
Una vez definida la Programación que declara la frecuencia con que se enviarán los reportes, es posible agendarlos para su distribución
automática.
1. Ingresar al O3 Server Administrator con una cuenta de Administrador
2. Seleccionar el servicio de Distribución de Reportes
Esto desplegará una pantalla similar a la siguiente
3. Presionar el botón Agregar para agendar un nuevo reporte
Esto despliega una pantalla similar a la siguiente
4.
5.
6.
7.
Seleccionar el reporte que se desea agendar de la lista desplegable
Seleccionar la Programación deseada
Ingresar los parámetros del envío como son Destinatario, Copias y Asunto
Opcionalmente se podría modificar el Proceso utilizado para el envío de reportes.
A los efectos de este tutorial se utiliza el proceso Por Defecto
8. Habilitar esta nueva tarea programada y Aceptar los cambios
Con estas modificaciones el gestor de tareas programadas del O3 Server iniciará los procesos de workflow necesarios.
Configurar envío de reportes en diferentes formatos
Está modificación se aplica a la versión 5.4 y anteriores. Las versiones posteriores ya implementan este cambio.
Contexto
La idea es permitir configurar la distribución de reportes automática en diferentes formatos admitos por BIRT.
Pre condiciones
El envío de reportes por mail requiere configurar correctamente el mailer de JBoss (consultar aquí).
Declarar la Programación de un Reporte (consultar aquí).
Agendar el envío de un Reporte (consultar aquí).
Configurar formato
1. Bajar el servidor.
2. Editar archivos StaticComponents.xml ubicado en <o3-install>/jboss/server/default/ideasoft-jwf/config/ agregando al nodo <config>
(según el formato en el cual se desee enviar el reporte), lo siguiente:
Pdf (configuración por defecto):
<urlType name="birtPDF"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
Excel:
<urlType name="birtXLS"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
Word:
<urlType name="birtDOC"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
Power Point:
<urlType name="birtPPT"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
Por ejemplo, si se configuraran los formatos pdf, xls, doc, ppt, el nodo <config> del archivo StaticComponents.xml quedaría de la
siguiente manera:
...
<config>
<urlType name="birtPDF"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
name="birtXLS"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
name="birtDOC"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
name="birtPPT"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
name="birt"
url="http://localhost:8080/o3report/preview?userLogin=${userLogin}&logoutOnEndRequest=true&userTicket=${
3. Guardar el archivo.
4. Subir el servidor.
Modificar Proceso
1. Ejecutar O3 Browser.
2. Dirigirse a Archivos -> Procesos -> Obtener Definición del Servidor
3. Loguearse al servidor ingresando usuario y contraseña.
4. Seleccionar Report Cast y presionar Aceptar.
Se despliega el proceso:
5. Seleccionar Send Mail y hacer doble click.
6. Seleccionar la pestaña Completar del primer nivel, y Después de Completar del segundo nivel.
7. Modificar el cuerpo del mail, según el formato definido previamente en StaticComponents.xml
Pdf (configuración por defecto):
$attachments.add($http.get('birtPDF', $!attrs.reportName, $!attrs.reportUser, $!attrs.reportParams), '.pdf')
Excel:
$attachments.add($http.get('birtXLS', $!attrs.reportName, $!attrs.reportUser, $!attrs.reportParams), '.xls')
Word:
$attachments.add($http.get('birtDOC', $!attrs.reportName, $!attrs.reportUser, $!attrs.reportParams), '.doc')
Power Point:
$attachments.add($http.get('birtPPT', $!attrs.reportName, $!attrs.reportUser, $!attrs.reportParams), '.ppt')
8. Guardar el cambio presionando Aceptar.
9. Se debe enviar la definición al servidor. Para ello dirigirse al menú Publicación -> Enviar Definición al Servidor
10. Presionar Aceptar.
El proceso será publicado en estado Testing.
11. Pasar proceso a producción. Para ello dirigirse al menú Publicación -> Cambiar Estado
Seleccionar Production y presionar Aceptar.
Iniciar proceso
1. Ejecutar WAdmin. Para ello dirigirse al menú Archivo -> Procesos -> WAdmin
Este componente nos permite ver todos los procesos y sus estados respectivos.
2. Hacer click en Buscar. Se mostrarán la lista de procesos en producción.
3. Seleccionar CronBuilder, dirigirse al menú Administración -> Ir a otra Actividad.
4. Seleccionar de la lista de selección Show attrs y presionar Aceptar.
CronBuilder se actualizará, comenzando a ejecutar ReportCast automáticamente.
Tutorial Personalización del formato de fecha
Personalización del formato de fecha
En la versión 5.0 de O3 se permite personalizar los valores de fechas. Dicha personalización puede ser realizada en el momento de la definición
del modelo multidimensional a través del componente O3Studio.
El usuario puede seleccionar de la lista cualquiera de los patrones ofrecidos. O de lo contrario puede especificar el formato directamente
escribiendo en el campo "patrón" utilizando la notación adecuada. Además el usuario tiene libertad de combinar los distintos patrones, definiendo
de esa forma el formato de su agrado.
La siguiente figura muestra un ejemplo de personalización del nivel día de la dimensión fecha.
Figura 1: personalización del nivel día durante la definición del modelo multidimensional
Los patrones que se presentan a continuación son predefinidos y están disponibles para ser utilizados tanto en O3Studio como en O3Browser.
Esta lista complementa a los patrones definidos por Java (ver javadoc de java.text.SimpleDate) que también puede ser utilizados
Notación y significado de los patrones:
Patrón
Descripción
qq
Número de trimestre
qqq
Palabra trimestre (internacionalizada) y número de trimestre
ss
Número de semestre
sss
Palabra semestre (internacionalizada) y número de semestre
ww
www
wq
Número de semana dentro del mes
Palabra semana (internacionalizada) y número de semana dentro del mes
Número de semana dentro del trimestre
wwq
ws
wws
wy
wwy
Palabra semana (internacionalizada) y número de semana dentro del trimestre
Número de semana dentro del semestre
Palabra semana (internacionalizada) y número de semana dentro del semestre
Número de semana dentro del año
Palabra semana (internacionalizada) y número de semana dentro del año
Lista de patrones predefinidos
La siguiente lista se ofrece al momento de definir el nivel jerárquico correspondiente en una dimensión de tipo fecha:
Para el nivel Año:
yyyy
yy
Para el nivel Semestre:
sss / yyyy
sss / yy
sss
ss
Para el nivel Trimestre:
qqq / yyyy
qqq / yy
qqq
qq
Para el nivel Mes:
MMM / yyyy
MMMM / yyyy
MM / yyyy
MMM / yy
MMMM / yy
MM / yy
Para el nivel Semana:
www
wwq
wws
wwy
ww
wq
ws
wy
Para el nivel Día:
EEE dd / MMM
EEE dd
EEEE dd
dd
dd/MM/yyyy
MM/dd/yyyy
Importante
Calculado por O3: la semana comienza a partir del lunes.
En el caso de colocar el patrón w (dentro del año) ó W (dentro del mes) (los cuales son resueltos por Java
directamente) la semana comienza el domingo ó el lunes dependiendo del idioma:
user.language=es comienza el lunes
user.language=en comienza el domingo
Tutorial Sincronización
Tutorial de Sincronización
Motivación
Brindar una solución de análisis para usuarios desconectados. En cualquier momento los usuarios pueden generar la información que necesitan
para su análisis en un ambiente desconectado de la organización, seleccionando el conjunto de información que le es de interés en cada
oportunidad.
Alcance
Se propone la sincronización automática del servidor para copiar en el equipo personal de trabajo los elementos habituales de consulta,
respetando la seguridad definida para el acceso a la información. La sincronización incluye los siguientes elementos de análisis:
datamarts y vistas
tableros de control
El usuario administrador de O3 determinará para cada rol, los elementos de análisis que se podrán sincronizar para consultar en forma
desconectada. Luego los usuarios se conectan al servidor y seleccionan la lista de componentes que desean sincronizar.
En cada operación el servidor chequea antes de comenzar la sincronización si hay elementos que no fueron actualizados desde la copia anterior
e informa el resultado, desmarcando aquellos componentes que se encuentran actualizados en la copia local.
Actualmente, en caso que el datamart a sincronizar exista localmente (con igual nombre), se pierden sus vistas y perfiles (queda el datamart
asociado a las vistas y perfiles del servidor).
Los datamarts, reglas y scorecards se sobreescriben sin solicitar confirmación (pero no se pierden los datamarts, reglas y scorecards definidos
localmente)
La sincronización es únicamente desde servidor hacia ambiente local (no es posible actualmente subir elementos al servidor).
Configuración para habilitar la sincronización
El usuario administrador de O3 debe seleccionar los roles asociados a cada cubo que podrán realizar la operación de sincronización. Para esto
debe conectarse al O3 Server Administrator y en la solapa General de cada uno de los cubos publicados completar el check box de la opción
"Puede sincronizar", como se muestra en la siguiente figura:
En este ejemplo se indica que los usuarios del rol Manager podrán sincronizar los elementos de análisis del datamart Demo.
Procedimiento de sincronización
En todo momento los usuarios habilitados para realizar sincronización de información pueden ejecutar el siguiente procedimiento, dejando por
resultado una copia de la información deseada, guardada localmente en su equipo para su posterior consulta en forma desconectada.
Se describe a continuación los pasos necesarios para sincronizar la información:
1.
1. Iniciar la operación de sincronización, para ello se debe seleccionar desde el compnente O3Browser:
Archivo --> Sincronizar, se solicita login al O3Server (si no se había conectado previamente al servidor) y a continuación login al server
que corre en el cliente. El usuario y password a utilizar por defecto son: localuser/user. A continuación se abre la ventana de
sincronización:
2.
3.
4.
5.
En esta ventana se despliegan en forma de árbol, la lista de componentes que se permiten sincronizar. Aparecen seleccionados
aquellos que no se encuentran en el equipo destino, o que en caso de encontrarse ya en el equipo, tienen fecha de actualización
anterior a la que figura en el servidor al momento de realizar la sincronización. El usuario debe seleccionar el conjunto de componentes
que desea sincronizar. Sobre la derecha se tiene un panel de Descripcion de los elementos seleccionados.
En la parte inferior de la ventana se muestra la barra de avance que indica la fase de sincronización en la que se encuentra. En este
momento el usuario puede realizar alguna de las 3 acciones posibles: 'Ejecutar' o 'Cancelar' la sincronización, y 'Cerrar' la ventana.
Como resultado de la sincronización:
Los datamarts seleccionados se almacenan dentro de la instalación de O3 en <o3>/cubes. Para cada datamart seleccionado se
sincronizarán las reglas que tenga asociadas, almacenandose en en <o3>\server\istore\rules.
Lo mismo ocurre con las vistas, se almacenan en las carpetas correspondientes, Public, Roles, etc. bajo la carpeta <o3>/server.
Los tableros se almacenan también dentro de la instalación de O3 en \server\istore\scorecard, creándose una carpeta por cada
tablero.
Desde este momento el usuario tiene disponible toda la información para realizar el análisis en forma local. Al finalizar la sincronización
se consulta al usuario si se quiere pasar a trabajar en modo desconectado. De todas formas se puede seleccionar en el menú
Archivo->Modo desconectado.
Para abrir cualquiera de los elementos de análisis del equipo, es necesario que se conecte al servidor local, tal como lo hizo al momento
de iniciar la sincronización. Toda modificación a las vistas, reglas y tableros existentes quedará almacenada en <o3>/server.
Web Services Data Sources
Web Services Data Sources
Este tutorial explica mediante un ejemplo cómo utilizar web services (WS) como fuente de datos de un modelo.
1. Ir a Fuentes de datos, Web Services Data Source, Agregar WebService.
2. En la solapa Descripción indicar nombre y descripción del WS.
3. En la solapa General:
a. Indicar si se utilizará para construir dimensión y si se debe verificar la fuente antes de construir.
b. Indicar la ruta completa del archivo XML que el WS devuelve como respuesta (XML request).
c. Dependiendo de la estructura del archivo XML puede que se requiera leer mas de una tupla por registro, en este caso indicar el
número de tuplas por registro.
d.
3.
d. En XPath Principal se muestra la estructura del archivo XML en forma de árbol. Seleccionar el elemento (correspondiente al tag)
que se tomará como referencia para direccionar los campos. Esta será la expresión XPath que se visualiza con formato
/ItemSearchResponse/Items/Item, por ejemplo, donde ItemSearchResponse es el tag inicial del archivo XML, le siguen a
continuación el o los tags hijos.
4. En la solapa SOAP:
a. Wsdl: ingresar la url del wsdl.
b. Service: en este combo editable se debe ingresar o seleccionar el nombre del servicio.
c. Service Port: en este combo editable se debe ingresar o seleccionar el puerto del servicio.
d. Namespace: ingresar el namespace del WS.
e. Iterativo: seleccionar en caso de que se quiera invocar iterativamente al WS, es decir llamar varias veces al WS hasta que no
devuelva nada.
f. Ingresar el XML Request.
Si se desconocen el service, service port y namespace, se puede presionar el botón a la derecha de wsdl, que completará estos
campos de acuerdo al wsdl ingresado.
Existen dos variables que se pueden utilizar opcionalmente en el cuerpo del xml: para distinguir una llamada de la otra (cuando
en se selecciona el check iterativo) se pueden utilizar unas expresiones en el XML del request, lo que se puede usar es:
${page} o ${page_index}, ${page}comienza en 1, ${page_index}en 0.
5. En la solapa Campos se tiene nuevamente el arbol de tags del archivo, donde se deben seleccionar los campos a utilizar. En la lista se
5.
tendrá:
a. Los atributos del tag, que son los que tienen @ como prefijo.
b. Los tags hijos, sin prefijos.
6. El tipo de dato asignado inicialmente para todos los campos es String (al igual que cuando se utilizan archivos de texto como fuentes de
datos, el usuario debe cambiar al tipo de dato correcto para cada campo). Se puede clickear Vista previa para visualizar los primeros
datos.
Descargar