Introducción a Pentaho Dashboard Material Extraído de Pentaho Solutions - Business Intelligence and Data Warehousing with Pentaho and MySQL Lic. Ana Smail Año 2010 Introducción a Pentaho Dashboard “La comunidad de código abierto se nutre de la participación y la cooperación. Hay varios canales de comunicación disponibles donde las personas pueden ayudar, pero no están obligados a hacerlo. Usted es responsable de su propio éxito, lo que requerirá tiempo, esfuerzo y una pequeña cantidad de capacidad técnica. “ Año 2010 Introducción a Pentaho Analysis Bibliografía Pentaho Solutions - Business Intelligence and Data Warehousing with Pentaho and MySQL – de Roland Bouman Jos van Dongen Bibliografía web http://wiki.pentaho.com/display/ServerDoc1x/03.+Action+Sequenc es http://wiki.pentaho.com/display/ServerDoc2x/Design+Studio http://wiki.pentaho.com/display/ServerDoc2x/3.+Action+Sequence +Editor Año 2010 Introducción a Pentaho Analysis Qué veremos en este módulo ? Introducción a pentaho Dashboard CDF : community Framework Dashboard Pentaho Designer: Action Sequence Año 2010 Introducción a Pentaho Dashboard Un Dashboard (tablero de instrumentos) es una aplicación que se utiliza para presentar el contenido de BI de alto nivel a los usuarios finales. El contenido del Dashboard, es casi siempre de carácter gráfico. Por lo general, los indicadores gráficos de alto nivel que aparecen en el Dashboard proporcionan cierto grado de interactividad que permite al usuario navegar por contenidos más detallados. Año 2010 Introducción a Pentaho Dashboard CDF (Community Dashboard Framework) Es un conjunto de tecnologías open source que permite a los desarrolladores de BI crear cuadros de mando dinámicos para el Pentaho Server BI. Los CDF Dashboard, son páginas web que utilizan la tecnología AJAX para combinar de forma dinámica los componentes de BI, tales como informes, gráficos, tablas OLAP, y mapas. El CDF está incluido en el servidor Pentaho BI, pero es desarrollado y mantenido por los miembros de la Comunidad Pentaho en vez de la Companía Pentaho. Se distribuye bajo licencia LGPL. Se aloja en : http://code.google.com/p/pentaho-cdf/. Año 2010 Introducción a Pentaho Dashboard ¿Dónde encontrar documentación? La documentación del proyecto está disponible en: el Wiki de Pentaho http://wiki.pentaho.com/display/COM/Community +Dashboard+Framework. Hay un foro en forums.pentaho.com, que se dedica a temas del CDF. Para obtener asistencia comercial, puede contactar con WebDetails en http://www.webdetails.pt/ Año 2010 Introducción a Pentaho Dashboard CDF: Conceptos y Arquitectura Extraído de: Pentaho Solutions - Business Intelligence and Data -Warehousing with Pentaho and MySQL Año 2010 Introducción a Pentaho Dashboard CDF: Conceptos y Arquitectura 1. El usuario final desde un navegador web explora un dashboard. Lo que causa una petición HTTP enviada al Pentaho Server BI. 2. El Pentaho Server BI recibe la solicitud y reconoce que debería entregar un dashboard al cliente. La solicitud contiene el nombre y el path de la solución del dashboard, basta con localizar el archivo xcdf que corresponde. 3. El archivo. Xcdf especifica: template-dashboard: marcadores de posición de componentes + instrucciones JavaScript para llenar los componentes. template-document o externo (debe estar explícitamente) 4. La página web es recibida por el navegador en el que se lee y se muestra. El dashboard es inicializado. Año 2010 Introducción a Pentaho Dashboard CDF: Conceptos y Arquitectura 5. Después de la inicialización del Dashboard, los componentes responden a los comandos implementados por el objeto.(“p.e.: update, actualización del contenido”) 6. El Pentaho Server BI recibe la solicitudes de los componentes, que por lo general, solicitan la ejecución de un action sequence. 7. El Pentaho Server BI ejecuta la action sequence. 8. El contenido generado por la “action sequence” se envía de nuevo al componente solicitante. Este coloca el contenido en su marcador de posición dentro del document-dashboard con lo que se hace visible. Año 2010 Introducción a Pentaho Dashboard Glosario Pentaho Solution Repository: Una solución es un conjunto de documentos que juntos definen los procesos y actividades que implementan la solución de sistemas de un problema de negocios. Las actividades y procesos ejecutados por Pentaho BI se encuentran en pentaho/biserver/pentaho-solutions Action Definition: Definicón XML que especifica parámetros, recursos y seteos requeridos para la ejecución de un paso dentro de un componente. Action Sequence Definition: Documento XML que define la interacción entre una o más Action Definition. Se almacenan el Solution Repository. Component: Puede contener todo el código requerido para ejecutar una tarea o solo ser una interface a otra aplicación o sistema. Los datos e instrucciones para los componentes son proveídos por una Action Sequence Definition. Año 2010 Introducción a Pentaho Dashboard EJEMPLO Antes de empezar hay que ajustar el encoding según el documento “How…” Año 2010 Introducción a Pentaho Dashboard EJEMPLO: detalle de componentes El panel de control contiene los siguientes componentes: En la parte superior izquierda, un gráfico circular que muestra el gasto por Ejercicio. En la parte inferiror izquierda, un gráfico circular que muestra el gasto por fuente. En la parte superior derecha un gráfico de barra que de acuerdo al ejercicio y fuente selecionada muestra las 10 partidas de la red programática en las que más se ha gastado. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Setup Crear una carpeta separada para mantener todos los items relacionados con el dashboard (es mejor hacerlo desde la consola de usuario). Esto hace más sencillo crear nuevos, sólo copiando y modificando uno ya existente, y permite reusar componentes. Para ver la carpeta creada hay que refrescar el repositorio. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Setup Cuando creamos una carpeta desde la consola de usuario de Pentaho, se crea asociado a la carpeta un archivo index.xml . Año 2010 Introducción a Pentaho Dashboard EJEMPLO: archivo .xcdf El archivo .xcdf es un archivo XML que describe el dashboard. Se crean en cualquier directorio del Solution Repository, para permitir que el usuario navegue hasta el Dashboard. Todo el contenido del archivo está entre los tags <cdf> y </cdf>. Los tags más importantes son: <title>: es obligatorio y define el nombre del dashboard y cómo aparece al usuario. <template>: identifica el template del contenido del dashboard. El valor es un nombre de archivo. <style>: identifica un document template, en el que contenido del dashboard se colocará. Si no se especifica, se utilizará en por defualt proveído por el CDF. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: creando el archivo .xcdf Primer paso en la creación de un Dashboard. Crear un nuevo archivo de texto presupuesto.xcdf directamente en el directorio “presupuesto”, con algún editor de texto. 1. Abrir el archivo presupuesto.xcdf y agregar el siguiente contenido: 1. <?xml version="1.0" encoding="ISO-8859-1"?> <cdf> <title>Dashboard Presupuesto</title> <author>Ana</author> <description>Dashboard Presupuesto</description> <icon></icon> <template>presupuesto-template.html</template> </cdf> Salvar el archivo 2. Archivos en el directorio Material/Dashboard/01-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Crear el archivo HTML del Dashboard Crear el document-dashboard. El archivo presupuesto.xcdf incluye el tag <template>, para especificar el content template del dashboard: <template>presupuesto-template.html</template> Este archivo presupuesto-template.html debe crearlo en el mismo directorio dónde está el presupuesto.xcdf. Abrir el presupuesto-template.html y agregar: <h1>Prueba Dashboard</h1> <script language=“javascript“ type=“text/javascript“> // Obtener repositorio de la solucion y path var solution = Dashboards.getQueryParameter(“solution“); var path = Dashboards.getQueryParameter(“path“); // Dashboard Parameters //parameter definitions go here // Component Definitions var components = []; </script <script language="javascript" type="text/javascript"> // Dashboard initialization function load(){ Dashboards.init(components); } load(); </script> Salvar los cambios. Archivos en el directorio Material/Dashboard/01-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: información en el código del document-dashboard Obtener el path y la solución. ?solution=SIU&path=/Dashboard/presupuesto&action=pres upuesto.xaction Parámetros de Dashboard Dashboard.globalcontext=true, es el valor por default Define el comienzo de la sección de parámetros y permite al dashboard utilizar todas las variables globales como parámetros Componentes de Dashboard El padrón típico es el de crear todas las definiciones de componentes y añadir todos juntos al objeto Dashboard con una llamada a su método init. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: TESTING Desde la Consola de Usuario, refrescando primero el repositorio (esto conviene hacerlo desde la Consola Administrativa antes de iniciar sesión en la de Usuario) Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Action Sequence – Gráfico de Gasto por Ejercicio Por cada component del Dashboard de ejemplo tenemos que crear una Action Sequence. Crear una Action Sequence se utiliza el PENTAHO DESIGN. 1. Iniciar PENTAHO DESIGN desde: pentaho/design_tools/design-studio/PentahoDesignStudio.exe Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Pentaho Design Studio Las principales funciones son crear/editar, testear, y desplegar action sequence, xml y otros documentos. Editores basados en formularios que sirven para la definición de los action sequences y generar los correspondientes documentos XML. No utilizado para crear o modificar report definitions, esquemas OLAP o ETL scripts, pero sí para linkear estos recursos en los correspondientes componentes. Los archivos de las Action Sequence finalizan con .xaction. Es una aplicación que corre dentro de ECLIPSE Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Pentaho Design Studio 2. Crear un proyecto para el repositorio de soluciones de Pentaho BI Server. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Encoding del Pentaho Design Studio 3. Configurar Design Studio para trabajar por defecto con ISO8859-1. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Desarrollando Action Sequence Las nuevas Action Sequences son creadas a partir de un Template El template por default es “blank” Otros Templates: Hello World, Send Email, Shark Burst, Sample Burst Action Desin Studio contiene 4 tabs para la configuración de action sequences: General: propiedades generales asociadas con la action sequence. Define Process: Donde se hace la definición del proceso. Especifica inputs, action definitions, workflow y outputs. XML Source: Visualiza y edita el XML. Test: Ejecuta la action sequence sobre un Pentaho BI Server que esté corriendo. Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Action Sequence – Gráfico de Gasto por Ejercicio 1. 2. Crear una nueva action sequence dentro de SIU/Dashboard/presupuesto llamada EjercicioPagado.xaction El primer paso de la action sequence es un proceso relacional llamado “EjercicioPagadoData” (se puede encontrar este tipo de Process Action en el submenú “Get Data Form”), que tiene asociada una consulta SQL 3. El segundo paso de la action sequence es llamada PieChart. El proceso se encuentra en el submenú Chart. Algunas opciones del gráfico circular: <chart-attributes> <chart-type>PieChart</chart-type> <url-template><![CDATA[javascript:clickOnEjercicio('{ejercicio}')]]></url-template> <paramName>ejercicio</paramName> <include-legend>false</include-legend> <title-font> <font-family>Ariel</font-family> <size>12</size> <is-bold>false</is-bold> <is-italic>false</is-italic> </title-font> </chart-attributes> Documentación: http://wiki.pentaho.com/display/ServerDoc2x/Chart+Reference Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponet Incluir el componente , xactionComponent, en el template-document del dashboard: Agregar una marca de posición dashboard dónde se mostrará la salida del componente. Archivo SIU/dashboard/presupuesto/presupuesto-template.html <div id="ejercicioPObject"></div> <script language="javascript" type="text/javascript"> ………… resto del archivo ………………………… El tag <div> debe estar antes que el tag <script> Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponet Crear un objeto JavaScript que sabe qué action sequence ejecutar. ejercicioP = { name: "ejercicioP", type: "xaction", solution: "SIU", path: "Dashboards/presupuesto", action: "EjercicioPagado.xaction", listeners:[], parameters: [], htmlObject: "ejercicioPObject", executeAtStart: true, preExecution:function(){}, postExecution:function(){} } var components = [ejercicioP]; Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponet Agregar el parámetro “ejercicio” var ejercicio = "null"; Crear la función que reacciona a la selección de una porción del gráfico. <SCRIPT LANGUAGE="JavaScript"> function clickOnEjercicio(value) { Dashboards.fireChange('ejercicio',value); } </SCRIPT> Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponet Los atributos de un “component” son: name: string que identifica el componente. Debe ser único. Type: string que se usa para instanciar un objeto de una clase de componente. (en este caso Xaction o XactionComponente) Solution: string con el nombre del repositorio de la solición. Path: Ruta dentro de la solución. Action: nombre del archivo .xaction. Parameters: arreglo de parámetros deben ser pasados cuando se invoca la action sequence. htmlObject: string asignado al id del marcador de posición <div>. Establece un link entre el documento HTML y el objeto Javascript. executeStart: valor booleano. En true hace que el componete sea creado con todos los componentes al iniciarse el dashboard. Sin embargo, puede cambiar en respuesta al cambio en un parámetro. Archivos en el directorio Material/Dashboard/02-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Action Sequence – Gráfico de Gasto por Fuente Creamos una Action Sequence que devuelva el segundo gráfico de torta, mostrando las fuentes y el monto pagado: 1. Crear una nueva action sequence dentro de SIU/Dashboard/presupuesto llamada fuentePagado.xaction. 2. El primer paso de la action sequence es un proceso relacional llamado “fuentePagadoData” (se puede encontrar este tipo de Process Action en el submenú “Get Data Form”), que tiene asociada una consulta SQL 3. El segundo paso de la action sequence es llamada PieChart. El proceso se encuentra en el submenú Chart. <chart-attributes> <chart-type>PieChart</chart-type> <url-template><![CDATA[javascript:Dashboards.fireChange('fuente', '{fuente}')]]></url-template> <paramName>fuente</paramName> ………………………………………………….. El método “fireChange()” comunica el cambio del parámetro al objeto Dashboard Archivos en el directorio Material/Dashboard/03-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponent– Gráfico de Gasto por Fuente Incluir el componente , xactionComponent, en el template-document del dashboard: Agregar una marca de posición dashboard dónde se mostrará la salida del componente. Crear un objeto JavaScript que sabe qué action sequence ejecutar. Agregar el parámetro “fuente” var fuente = "null"; Modificar la función que reacciona a la selección de una porción del gráfico. <SCRIPT LANGUAGE="JavaScript"> // Esta funcion es ejecutada cuando un usuario que ha // seleccionado una fuente selecciona un ejercicio // El proposito de la funcion es resetear la variable fuente a // null y pasar el ejercicio que ha sido seleccionado // The function is executed from the url-template tag in the ejercicioPagado.xaction function clickOnEjercicio(value) { fuente = "null"; Dashboards.fireChange('ejercicio',value); } </SCRIPT Archivos en el directorio Material/Dashboard/03-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Action Sequence – Gráfico de Gasto por Red Programática para un Ejercicio y Fuente Creamos una Action Sequence que devuelva el segundo gráfico de torta, mostrando las fuentes y el monto pagado. 1. Crear una nueva action sequence dentro de SIU/Dashboard/presupuesto llamada RedPPagado.xaction. 2. Usar la If Statement (Process Action),para testear cuál de los parámetros ejercicio o fuente tiene valor y construir la consulta MDX al cubo de presupuesto. 3. Como último paso de la action sequence crear un proceso llamado RedBarChart. El proceso se encuentra en el submenú Chart y corresponde a un gráfico de Barras. Archivos en el directorio Material/Dashboard/04-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: XactionComponent– Gráfico de Gasto por Red Programática para un Ejercicio y Fuente Incluir el componente , xactionComponent, en el templatedocument del dashboard: Agregar una marca de posición dashboard dónde se mostrará la salida del componente. Crear un objeto JavaScript que sabe qué action sequence ejecutar. redPP = { name: "redPP", type: "xaction", solution: "SIU", path: "Dashboards", action: "RedPPagado.xaction", listeners:["fuente", "ejercicio"], parameters: [["fuente", "fuente"], ["ejercicio", "ejercicio"]], htmlObject: "redPPObject", executeAtStart: true, preExecution:function(){}, postExecution:function(){} } var components = [ejercicioP,fuenteP,redPP]; Archivos en el directorio Material/Dashboard/04-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Cambio dinámico del título del Dashboard Se trata de que el título del Dashboard cambie respondiendo a la selección de Ejercicio o Fuente, o ambas. Agregar un marcador de posición <div id="titleObject"></div> Agregar el componente nuevo: titleString = { name: "titleString", type: "text", title: "SIU_Presupuesto", listeners:["fuente", "ejercicio"], htmlObject: "titleObject", executeAtStart: true, expression: function(){return this.title}, preExecution:function(){ if( ejercicio == "null" && fuente != "null") { this.title = "Top Ten por " + fuente; } else if ( ejercicio != "null" && fuente == "null") { this.title = "Top Ten por " + ejercicio; } ………………………….. }, postExecution:function(){} } var components = [ejercicioP,fuenteP,redPP,titleString]; Archivos en el directorio Material/Dashboard/05-presupuesto Año 2010 Introducción a Pentaho Dashboard EJEMPLO: Personalizar el Document Template El document-template usado por default es el que se entrega con el CDF y se encuentra en PentahoSolution/System/Pentaho-cdf y se llama templatedashboard-mantle.html que no incluye navegación. Creamos en el mismo directorio uno personalizado llamado template-dashboard-siu.html Agregamos al archivo pentahosolution/SIU/Dashboard/presupuesto/presupuesto.xcdf el tag <style>siu</style> Lo que le informará que este dashboard tiene un document tempplate personalizado. Archivos en el directorio Material/Dashboard/05-presupuesto Año 2010 Preguntas Lic. Ana Smail (anasmail@unnoba.edu.ar) Año 2010