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)
- Seleccione la opción del menú Data->New Data Source para crear una nueva Fuente de datos
- 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
- Indique el nombre de la fuente de datos (Data Source Name)
En este ejemplo llamaremos "O3 Local" a la fuente de datos - 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 localhostPort:
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 7777User Name:
Nombre del usuario definido en O3 que se usará para conectarse al servidor.
En nuestro caso usaremos el usuario userPassword:
Contraseña del usuario definido en el campo anterior
En nuestro caso usaremos la password del usuario userQuery Type:
Indica el tipo de Fuente de datos que se usará: Consulta MDX o Vista O3.
En nuestro caso O3 View - 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:
- Seleccione la opción del menú Data->New Data Set
- Indique el nombre del Conjunto de Datos (Data Set Name)
- 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". - Seleccionar O3 Data Set como tipo de Conjunto de Datos
- 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.
- Presionar el botón Finish para aceptar los cambios
- 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
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
- 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
- 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
- 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