martes, 15 de marzo de 2011

PerformancePoint: Implementar un filtro de Inteligencia de Tiempo

 

En esta ocasión vamos vamos a hablar de otra herramienta del stack de Microsoft para soluciones de BI: PerformancePoint. La idea de escribir esta entrada me surgió como algunas otras, algún colega lo pregunta en los foros.

Pregunta

Is there any way that I could setup that drop down menu will show just words: Fiscal Month, Fiscal Quarter, and Fiscal Year?  I do not want to see the names of the months and the year.  And it will point, for example, to the fiscal month based on today's date? And Fiscal Month should be default selection.

Is it possible to do?

Básicamente requiere un filtro que no disponga de fecha sino de elementos con nombre: Mes Fiscal, Trimestre Fiscal y Año Fiscal, y que acoten los datos segmentando por la dimensión tiempo, basados en la fecha actual.

Respuesta

Sure! xD

En realidad la respuesta fue algo más larga, así que vamos…

Desarrollo

En la creación de Dashboards (o paneles en spanish) es muy frecuente la implementación de filtros que faciliten al usuario la interacción con los distintos elementos que contienen, como informe analíticos, scorecards, etc..

Para implementar un filtro de tiempo y en particular de Inteligencia de Tiempo es obligatorio tener configurada una dimensión de tipo tiempo, suena obvio pero por si acaso lo comento (quien no ha visto una dimensión de tiempo sin configurar mínimamente?)

Para nuestro ejemplo, vamos a suponer que tenemos una dimensión de tiempo con una jerarquía Calendario con los siguientes niveles: Años, Semestres, Trimestres, Meses y finalmente días.

image

Vamos al DashBoard designer o Diseñador de Paneles. Voy a utilizar la versión 2007 en la que los filtros son elementos propios de cada panel, no se pueden compartir, pero el mecanismo para implementarlos en 2010 es básicamente el mismo.

 

¿Que es Inteligencia de Tiempo?

La versión corta es que Microsoft ha utilizando este término para definir los métodos ideados para facilitar el uso de la dimensión tiempo en un cubo. La versión larga puedes leerla de TechNet. En PerformancePoint se limita a la utilización de fórmulas en filtros de tiempo para facilitar la visualización de conjuntos con nombre.

Configurar conexión

Ya en el diseñador, el primer paso es configurar el tiempo en la conexión. Para esto nos vamos a la carpeta Orígenes de Datos, en el Explorar de área de trabajo, y seleccionamos el origen que utilicen los elementos del panel dónde vamos a implementar el filtro. El origen de datos debe ser de tipo Multidimensional.

En el editor del origen de datos, acceder a la pestaña Tiempo:

image

En el desplegable dimensión de tiempo hay que seleccionar la dimensión que nos facilitará la información sobre el tiempo en los distintos elementos que formen parte del panel en el que queramos incluir el filtro.

En miembro de referencia seleccionar un miembro que defina la granularidad más baja, por ejemplo el día 15, Mar 2011

En nivel de la jerarquía seleccionaremos el nivel que identifique el miembro establecido en el miembro, en el punto anterior. Siguiendo el ejemplo establecemos Día.

En Fecha de referencia se elegirá la fecha correspondiente al miembro seleccionado: 15/05/2011 15/03/2011

image

Solo queda asociar los niveles de la jerarquía los niveles de agregación:

image

Y con esto finaliza la configuración del origen de datos necesaria  para implementar un filtro de tiempo.

Creación del filtro Inteligencia de Tiempo

Para crear el filtro hay que posicionarse en el dashboard dónde vayamos a utilizarlo y  podremos acceder al panel de Filtro (en caso de PerformancePoint 2007):

image

Iniciamos el asistente y seleccionamos la plantilla Inteligencia de Tiempo, utilizando el origen de datos que configuramos anteriormente.

image

 

Llegamos a la página del asistente que nos permite definir los elementos que aparecerán en el filtro escribiendo fórmulas. En este caso vamos a crear los siguientes:

image

Si pulsamos el botón de vista previa podemos ver como se generan los conjuntos  MDX formados por miembros de la dimensión de tiempo que se ‘esconden’ tras las fórmulas que hemos escrito.

image

Finalizamos el asistente e insertamos el filtro en el panel y lo conectamos con los elementos que contenga el dashboard.

Conclusión

Pues concluyendo hemos creado un panel con un filtro de tiempo que nos permite determinar qué periodos puede seleccionar el usuario

image image

 

Enlaces de interés

Crear un filtro mediante una plantilla de inteligencia de tiempo en el Diseñador de paneles

Acerca de la sintaxis de las expresiones de inteligencia de tiempo

Vincular filtros a cuadros de mandos e informes

 

Saludos.


miércoles, 2 de marzo de 2011

I Encuentro PASS Spanish Group

PASS-Spanish-Group-Logo-2

Vosotros no lo veis, pero escribo esto con una sonrisa. Pensar que en unos días asistiré al primer encuentro del la sección regional oficial de PASS, una comunidad de usuarios SQL a nivel mundial en la que se organizan todo tipo de actividades para aprender y compartir junto a los profesionales más destacados.

Por lo pronto PASS Spanish Group no tiene web oficial, pero ha creado grupos en Facebook y LinkedIn para comunicar los eventos y demás noticias.

El próximo 10 de marzo tendrá lugar en Madrid, en las instalaciones de Microsoft, la presentación del grupo junto a una serie de ponencias, regístrate aquí.

Desde aquí agradecer los esfuerzos de las personas que han participado en la creación de este grupo, que estoy seguro hará crecer como profesionales a todos los que formemos parte de él.

No me puedo olvidar de dejaros los links a los blogs de algunos promotores de esta nueva comunidad en España: Alberto López Grande y Salvador Ramos

En fin, que nos vemos allí… Animaros!

SSIS: Bug del componente Fuzzy lookup en entornos 32Bits

 

Hola a todos.

Siguiendo la serie de post sobre SSIS, les quiero comentar un problemilla que existe con el componenente Fuzzy Lookup o Búsqueda Aproximada.

Desde que apareció SQL 2008, este componente tiene un comportamiento anómalo ejecutándolo en entornos de 32 bits. En concreto aparece una consola de comandos de SQLDumper.exe que genera un archivo de volcado y se cierra.

Lo cuento ahora, después de darle guerra a Microsoft para que analizara el caso y lo reabriera para resolverlo ya que lo habían cerrado por “irreproducible”.

https://connect.microsoft.com/SQLServer/feedback/details/634516

Gracias a Sergio Clemente (MSFT Developer) por el tiempo dedicado a este caso.

Escenario

Es este caso vamos a utilizar un origen Access 2010 y vamos a hacer la búsqueda en una tabla de SQL. Para la conexión a Access utilizamos JET 4.0 en lugar del nuevo motor de 64bits.

Diseño del paquete

No vamos a complicarlo: dentro de un DFT añadimos un origen OLEDB conectado a un Fuzzy Lookup con salida a un Multicast. En el pipeline entre estos dos últimos configuramos un Data Viewer para comprobar los resultados del Fuzzy. El diseño del DFT debe parecerse a este:

Diseño DFT

Ahora vamos a cambiar la configuración por defecto del proyecto para que se ejecute en 32 Bits y no optimice el flujo de datos (que omite los campos que no se utilizan posteriormente):

SSIS Fuzzy Lookup issue in 32bits - project settings

 

Ejecución

Al ejecutar este paquete en 32 bits, lee los datos correctamente y cuando llega al Fuzzy Lookup aparece una consola de comandos que permanece algunos segundos activa antes de cerrarse. La ejecución del paquete finaliza en este punto.

 

SSIS Fuzzy Lookup issue in 32bits

 

Conclusión

A la hora de desarrollar tus proyectos resulta útil conocer este bug. Utiliza alternativas como proveedores de 64 bits, ya que con la opción Run64BitsRuntime=true no se reproduce la incidencia.

 

Saludos!

Víctor.


Entradas populares