Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{scrollbar}

----
AntesBefore designing dethe poderreport diseñarit elis reportenecessary 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

h3. Definiendo una Fuente de Datos (Data Source)

# Seleccione la opción del menú Data->New Data Source para crear una nueva Fuente de datos
to specify what data you will be working on and which the connection mechanism will be.

This tutorial builds a report using data stored in an O3 cube.

Extraction of these data is performed in 2 steps:  
* Define the data source 
* Define the data set.  
You may have several data sets defined on the same data source.

h3. Defining a Data Source 

# Select New Data Source in the Data menu to create a new data source. 
!NewDataSource.png|vspace=10,hspace=10!
# ElijaChoose elthe tipoData deSource fuente de datos paratype for O3 ( O3 Data Source)
EstoThis permitelets definiryou unadefine fuentea dedata datossource afor cubosO3 ycubes vistasand de O3views. EstasThese fuentesO3 dedata datossources amay O3be puedenof sertwo de dos tipos:types:  
#* FuentesSources quethat accedenaccess aviews vistassaved almacenadasin en el servidorthe server.
#* FuentesSources quethat accedenaccess acubes cubossaved almacenadosin enthe elserver servidorand yuse utilizanMDX ellanguage lenguajeto MDXspecify para especificar la consulta
# Indique el nombre de la fuente de datos (Data Source Name)
En este ejemplo llamaremosthe query. 
# Indicate the Data Source Name.
In this example the data source will be called "O3 Local" a la fuente de datos 
# IngreseEnter losthe parámetrosData de la Fuente de datos
source parameters.   
| *Host Name:* | ElThe nombrename oor direcciónIP IPaddress delof servidorthe dondeserver sewhere encuentraO3 ejecutandois O3.running.    \\
EnIn nuestroour caso case:*localhost* |
| *Port:* | PuertoServer delport servidorindicated indicadoin enthe elparameter parámetroabove anteriorwhere dondeO3 seserver encuentra ejecutando el servidor de O3.is run.    \\
EnIn our nuestrocase casowe usaremoswill eluse puertoport por7777 defecto *7777*by default. |
| *User Name:* | Name Nombreof delthe usuariouser definidodefined enin O3 that will quebe seused usaráfor paraconnection conectarseto althe servidorserver.  \\
EnIn nuestroour casocase, usaremoswe el usuario will use *user* |
| *Password:* | Password Contraseñaof the deluser usuariodefined definidoin enthe el campo anteriorprevious field.    \\
EnIn nuestroour casocase usaremoswe lawill password del usuario use the *user*'s password. |
| *Query Type:* | IndicaIt elindicates tipothe deData FuenteSource deType datosto quebe se usará: Consulta used: MDX o Vista O3Query or O3 View. \\
EnIn nuestro caso our case *O3 View* |
!NewO3DataSource.png|vspace=10,hspace=10!
# Verificar que la conexión se estableció en forma correcta presionando el botón *Test Connection...*

h3. 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
!VistaVinosPorVendedor.png|vspace=10,hspace=10!

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
!NewDataSet.png|vspace=10,hspace=10!
# 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
!Query-O3View.png|vspace=10,hspace=10!
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.
# 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
!Query-Preview.png|vspace=10,hspace=10!

h3. 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
{code:sql}
SELECT
	{[Measures].[Litros Vendidos], [Measures].[Venta Neta]} ON COLUMNS
	,CROSSJOIN({[Vendedores].[Vendedor].members}, {[Vinos].[Vino].members}) ON ROWS
FROM [Vinos]
{code}

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|O3PS:Consultas MDX para reportes]

----
{scrollbar}