Buscar en el Blog

miércoles, 18 de febrero de 2015

Cómo configurar una conexión JNDI en Pentaho Report Designer

En ésta publicación explico el procedimiento para configurar una conexión JNDI a PostgreSQL en Pentaho Report Designer (PRD)

1. Ir al directorio home del usuario.

En Mac OS X: /Users/nombre_usuario/.pentaho

En Windows: C:\Users\nombre_usuario\.pentaho 

2. Crear el directorio simple-jndi

3. Dentro del directorio crear un archivo de nombre default.properties

4. Suponiendo que la conexión JNDI en BI Server se la configuró como jdbc/dwh colocar en el archivo lo siguiente:
dwh/type=javax.sql.DataSource
dwh/driver=org.postgresql.Driver
dwh/url=jdbc:postgresql://127.0.0.1:5432/dwh
dwh/user=postgres
dwh/password=postgres
5. Guardar el archivo y ejecutar report-designer. Cuando se cree la conexión, hacer referencia al JNDI Name: dwh

9 comentarios:

  1. ingmmurillo buenas tardes, estoy creando un reporte en pentaho 5.4, este tiene una consulta MDX (OLAP pentaho analysis) pero al momento de cargarlo a la consola y ejecutarlo no me muestra nada, intenta ejecutarse pero no muestra la información.

    Estoy pensando que puede ser la ruta que ingreso para llamar el cubo, la cual esta de la siguiente manera:

    Pentaho Analysis Schema file: /public/carpetacubo/nombrecubo.xml

    Logical Schema Name on server: nombrecubo

    No se que estoy haciendo mal.

    Muchas gracias

    ResponderBorrar
    Respuestas
    1. Revisa que el nombre de la conexión cuando creaste el esquema de Mondrian con PSW sea idéntico al nombre que configuras para JNDI en Pentaho Report Designer. Recuerda que este nombre es sensible a mayúsculas y minúsculas. Por ejemplo: Dwh es un nombre diferente a dwh

      Saludos,

      Borrar
    2. Verifique las conexiones, están creadas iguales. Cargue nuevamente el cubo y reporte pero ahora genera el siguiente error:

      16:23:24,977 ERROR [SimpleReportingComponent] [execute] Falló la ejecución del componente.
      java.lang.NoSuchMethodError: java.lang.Integer.compare(II)I
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.SortedMemberAddingStrategy$MemberComparator.compare(SortedMemberAddingStrategy.java:72)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.SortedMemberAddingStrategy$MemberComparator.compare(SortedMemberAddingStrategy.java:36)
      at java.util.TreeMap.put(TreeMap.java:547)
      at java.util.TreeSet.add(TreeSet.java:255)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.SortedMemberAddingStrategy.add(SortedMemberAddingStrategy.java:106)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.ResultSetProcessingLib.computeDeepColumnNames(ResultSetProcessingLib.java:155)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.ResultSetProcessingLib.computeMemberCountForAxis(ResultSetProcessingLib.java:78)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.util.ResultSetProcessingLib.computeTotalColumnsPerAxis(ResultSetProcessingLib.java:93)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.BandedMDXTableModel.(BandedMDXTableModel.java:92)
      at org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.BandedMDXDataFactory.queryData(BandedMDXDataFactory.java:55)

      Borrar
    3. Algo adicional, sí usas Pentaho BI Server 5.4 usa Pentaho Schema Workbench v3.10.0 y Pentaho Report Designer v5.4

      Saludos,

      Borrar
    4. Esas son las versiones que estoy usando.

      Adicional en ese mismo reporte se cambio el origen de datos por una consulta SQL que si funcionó pero al volver a pasar a MDX sale el error.

      Borrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. ingmmurillo, buenas tardes, estoy creando un reporte el cual se debe enviar por correo, cada mes, yo pensaba hacer un programa en java, pero no se como mandar a ejecutar el reporte desde allí, pero no se como, si me podría ayudar explicando como, me sería de mucha ayuda, o alguna otra forma en la que pueda hacer lo antes mencionado

    Gracias

    ResponderBorrar
  4. ingmmurillo buenas tardes, estoy haciendo un reporte en PRD, el cual debe enviarse cada mes, estaba pensando hacer una aplicación java para que me ejecute el reporte, pero no se como mandar a llamar al reporte, me ayudaría mucho si sabe y me explicara como hacerlo, u si hay otra forma de poder hacerlo
    Gracias

    ResponderBorrar
    Respuestas
    1. Hola, puedes usar el API de Pentaho Reporting para invocar tú reporte desde una aplicación web. En el libro Pentaho 5.0 Reporting by Example Beginner’s Guide explica como hacerlo:

      http://my.safaribooksonline.com/book/databases-and-reporting-tools/9781782162247/14dot-prd-reports-embedded-in-web-applications/ch14_html

      Saludos,

      Borrar