PerformancePoint Services es la propuesta de Microsoft como plataforma de visualización de datos en entornos de colaboración para soluciones de Business Intelligence, con la capacidad de diseñar y desplegar informes, KPIs, Scorecards y Dashboards a través de la herramienta Dashboard Designer sobre SharePoint 2010 con las características de la edición Enterprise activadas. Tomando un origen de datos de Analysis Services resulta sumamente fácil crear estos elementos explotando la capa lógica diseñada en la base de datos OLAP, además de que nos permite personalizar las consultas MDX de los informes analíticos y filtros.

Cuando diseñamos un informe analítico de PerformancePoint a través del interfaz de diseño, es decir, seleccionando las medidas y las dimensiones desde el panel de detalles, todos las dimensiones implicadas quedan expuestas para realizar conexiones entre elementos en un Dashboard:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Cuando construimos Dashboards podemos vincular elementos entre sí (Filtros –> [scorecards,informes] ; Scorecard –> [scorecards, informes]) , concretamente a alguna de las dimensiones que contenga:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Como se puede apreciar en la imagen, también se incluye la dimensión Measures (medidas).

En este artículos vamos a crear un filtro para que el usuario pueda seleccionar determinadas medidas para un informe. Además el nombre a presentar de las medidas podría ser distinto al que tienen en el cubo.

Además, como bien sabéis, un filtro puede actuar sobre varios elementos visuales de un dashboard pero cuando se aplica el cambio de medida sobre un elemento concreto no se reproduce para el resto de elementos.

Para los ejemplos vamos a utilizar la base de datos OLAP AdventureWorksDW2012 y una instancia de SQL Server Analysis Services 2012 RTM (descargar versión RTM). También utilizaremos SharePoint 2010 (descargar versión de evaluación) . Si vas a utilizar un entorno similar, es necesario aplicar el Service Pack 1 de SharePoint 2010 para poder realizar su configuración: http://msdn.microsoft.com/en-us/library/hh231665(v=sql.110).aspx.

 Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Escenario

Los requisitos de la solución expresan la necesidad de poder seleccionar determinadas medidas para mostrar en un informe analítico de PerformancePoint Services a través de un filtro (no el menú contextual de los elementos visuales)

Hay varias formas de resolverlo, todas las que conozco son utilizando una píldora de MDX… nada complicado así que vamos allá.

Solución

La solución que aquí planteo es la que prefiero utilizar por la flexibilidad que proporciona además de que puede utilizarse para otros menesteres. La mayor parte de la implementación de esta solución se realiza en el diseño del cubo. Paso por paso:

1. Crear consulta con nombre en el DSV

La clave es crear en el DSV una consulta con nombre que hará de soporte para una dimensión ‘ficticia’ en la que podemos obtener el nombre único de las medidas. También se puede utilizar una tabla del DW que soporte los datos para evitar tocar el proyecto cada vez que necesitemos una modificación o ampliación de los registros de esta tabla.

Esta nueva tabla en el DW o consulta con nombre en el DSV debe almacenar, al menos, los siguientes datos:

ID Medida UniqueName
1 Tota de ventas [Measures].[Sales Amount]

La consulta en el DSV quedaría similar a la siguiente:

SELECT     1 AS ID, 'Total de ventas' AS Medida, '[Measures].[Sales Amount]' AS UniqueName
UNION ALL
SELECT     2 AS ID, 'Total ventas Internet' AS Medida, '[Measures].[Internet Sales Amount]' AS UniqueName
UNION ALL
SELECT     3 AS ID, 'Total ventas 3er Canal' AS Medida, '[Measures].[Reseller Sales Amount]' AS UniqueName
UNION ALL
SELECT     4 AS ID, '% Beneficio bruto Internet' AS Medida, '[Measures].[Internet Gross Profit Margin]' AS UniqueName
UNION ALL
SELECT     5 AS ID, '% Ventas Internet/total' AS Medida, '[Measures].[% Ventas por internet s/total]' AS UniqueName
UNION ALL
SELECT     6 AS ID, '% Ventas 3er canal/total' AS Medida, '[Measures].[% Ventas 3er canal s/total]' AS UniqueName

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

El valor cada medida no puede estar formado por cálculos entre medidas, debe representar una ya existente. Tampoco podemos operar con dos medidas

2. Añadir una dimensión a la BD

El siguiente paso será construir una dimensión con los datos de la consulta que añadimos al DSV. Dejamos como atributo visible ‘Medida’ y ‘UniqueName’ como no visible. La columna ID puede ser el atributo clave de ‘Medida’:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

La dimensión debe mostrar el atributo Medida y poder obtener el atributo ‘UniqueName’ como propiedad:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Para esta nueva dimensión ‘Medidas’ debemos establecer un uso de dimensión en el cubo, sin asociarla a ningún grupo de medidas:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Después de añadir la dimensión correctamente al cubo es el momento de procesarlo (Process Full) para obtener los cambios en el servidor de Analysis Services

3. Generar un filtro en PerformancePoint Services

Desde el Dashboard Designer creamos un filtro, de tipo selección de miembros, utilizando la dimensión medidas… seleccionamos aquellas que nos interesan para el dashboard que vamos a construir

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

4. Conectar el filtro ‘Medidas’ con los elementos del dashboard

Creamos o editamos un dashboard para añadir el filtro en la cabecera, o dónde mejor este presentado, y conectamos la propiedad ‘Member Unique Name‘ a los distintos informes, conectándolo a la dimensión Measures

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

Seguro que más de uno ya habrá pensado que el Unique Name de nuestra dimensión ficticia no va a proporcionar un nombre de medida válido, esta claro. En su lugar, vamos a utilizar el token <<UniqueName>> que PPS habilita para acceder a las propiedades de los miembros seleccionados en el filtro que, si no nos hemos equivocado escribiendo el MDX, nos proporcionará la información necesaria para pasarla como filtro de medidas. Para esto, pulsamos sobre el botón Connection Formula y escribimos la siguiente:

Strtomember(<<UniqueName>>.Properties("UniqueName"))

Nota: es importante respectar las mayúsculas en el token <<UniqueName>> , de otra forma no funcionará.

Desplegamos y listo:

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas
Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

 

Conclusión

El handicap de esta solución es que la dimensión ‘Medidas’ debe permanecer visible, por lo que el usuario podrá acceder al atributo medida y puede conducirle a intentar utilizarlas.

Sin embargo, esta aproximación nos permite modificar la consulta MDX de los informes de PerformancePoint Services y seguir cambiando la medida a mostrar. Hemos alcanzado el objetivo planteado cumpliendo todos los requisitos, dotando de mayor flexibilidad a nuestros dashboards.

Si estáis interesados, puedo publicar el espacio de trabajo de Dashboard Designer y el proyecto AdventureWorksDW2012Multidimensional-EE con estos cambios implementados

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like