Generación de una tabla dinámica JPivot Pentaho conectada al servidor Mondrian OLAP
En esta lección vamos a crear una tabla dinámica JPivot simple con los datos generados del servidor Mondrian OLAP y que será accesada como la página Web.
Para hacerlo vamos a usar la tecnología JSP con los tags dedicados a las tablas dinámicas JPivot.
Será recomendable tener algunas experiencias con Java y JSP para terminar este curso y tambien leer sobre los tags JSP (JPivot y WCF).
La descripción y documentación de las librerías puede ser encontrada aquí:
Jpivot JSP tags
WCF JSP tags
En esta lección de Pentaho tutorial vamos a crear una pagina jsp con una tabla dinamica JPivot con este nombre: gg_crosstab1.jsp.
Siga los siguientes pasos para crear e instalar una pagina JSP con el JPivot crosstab:
La conexión MDX a la base de datos, al vez configurada correcatamente, debe ser guardada en un fichero JSP. En nuestro caso es el fichero/WEB-INF/queries/etltools.jsp.
<%@ page session="true" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<jp:mondrianQuery id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:dwuser/dwpwd1@127.0.0.1:1521:xe" catalogUri="/WEB-INF/queries/EtlTools.xml">
select {[Measures].[Total Turnover], [Measures].[Total Weight]} ON columns,
{[TIME].[All Time]} ON rows from EtlTools
</jp:mondrianQuery>
<c:set var="title01" scope="session">Una tabla dinamica simple que usa el servidor Mondrian OLAP </c:set>
La cosa más importante en el fichero la configuración es el tag jp:mondrianQuery que define y indica la fuente de datos Mondrian.
El fichero contiene una sentencia MDX que define datos que serán descargados de Mondrian.
En nuestro tutorial analizaremos la tabla dinámica en una dimensión (tiempo – time) y dos medidas (Venta - turnover y peso – weight).
En el fichero de configuración hay referencia al fichero de configuración de la esquema Mondrian (EtlTools.xml). Es el mismo fichero que creamos en la lección sobre Pentaho Cube Designer en este tutorial.
El fichero gg_crosstab1.jsp.
El código del fichero jsp que genera una tabla dinamica JPivot (las partes mas significantes marcadas en rojo): 
- Las primeras líneas del fichero gg_crosstab1.jsp contienen referencia a los tags jsp para wcf, jpivot y core java .
-
La línea abajo contiene referencia al fichero CSS (mdxtable.css) que define el diseño de la tabla dinámica JPivot.
<link rel="stylesheet" type="text/css" href="jpivot/table/mdxtable.css">
- En las siguientes lineas incluimos a la definición del fichero definición Mondrian y comprobamos si el fichero se ha cargado correctamente. Si no, el navegador WWW ira a la pagina principal index.jsp
<%-- definición del query --%>
<wcf:include id="include01" httpParam="query" prefix="/WEB-INF/queries/" suffix=".jsp"/>
<c:if test="${query01 == null}">
<jsp:forward page="/index.jsp"/>
</c:if>
- La tabla dinámica esta inicializada con este comando (esta sólo cargada a memoria):
<jp:table id="table01" query="#{query01}"/>
- Y para mostrarla en la pantalla hay que usar la opción render:
<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl" xslCache="true"/>
Para que el crosstab jsp funcionase en el servidor WWW hay que añadir un filtro JPivotController al fichero de configuración de Apache Tomcat WEB-INF/web.xml :
<filter-mapping>
<filter-name>JPivotController</filter-name>
<url-pattern>/gg_crosstab1.jsp</url-pattern>
</filter-mapping>
La tabla dinámica JPivot esta preparada y lista para generar y para empezar el analisis.
El cubo JPivot debe ser accesible desde esta dirección: (asumiendo que el Tomcat usa el puerto 8000)
http://127.0.0.1:8000/mondrian/gg_crosstab1.jsp?query=etltools
Ejemplo de una Tabla dinámica JPivot: 
|