Publicado el Dejar un comentario

Pentaho Report Designer 5.4: parametrización sql avanzada.

Utilizamos el software open source Pentaho report designer 5.4 en el trabajo diario para crear reportes que luego publicamos en el servidor de reportes biserver-ce del mismo fabricante.

Recientemente nos vimos en la necesidad de crear consultas sql dinámicas en donde el parámetro a pasar el reporte fuera el nombre de la tabla a consultar. Habíamos creado otros reportes con parámetros dónde lo que pasábamos eran valores de columnas por los que queríamos filtrar los datos, pero esta técnica no funcionó cuando el parámetro representaba el nombre de la tabla.

Nos fuimos a la documentación de este software y no estaba muy clara, ya que omitía varios pasos que en el siguiente video les comparto.

Espero que les sea útil.

¡Saludos!

Publicado el Dejar un comentario

El servidor de reportes biserver-ce de Pantaho no muestra los reportes en Solaris 10

Recién migré el servidor de reportes biserver-ce version 5.4 de Pentaho de Windows a Solaris 10 sin ningún problema aparente. Sin embargo al ejecutar los reportes, estos no se mostraban. El problema era el despliegue del reporte. Examinando el archivo log de la aplicación me encontré con el siguiente error:


java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

La solución fue editar el archivo start-pentaho.sh y agregar la opción –Djava.awt.headless=true a la línea donde se define la variable CATALINA_OPTS. En mi caso la línea quedó así:

CATALINA_OPTS="-d64 -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true"

Una vez hecho esto, reinicie el servidor de reportes y los reportes se mostraron correctamente.

¡Saludos!

Publicado el Dejar un comentario

Cómo dividir o partir archivos de texto en Solaris 10

A veces es necesario partir o dividir un archivo de texto con miles o millones de líneas en Solaris 10, ya sea para enviarlo por correo o por cualquier otro uso que requiera esta acción.

En este sistema operativo existe el comando split que cumple con esta función. El comando no sólo parte archivos de texto, puede también partir archivos binarios, pero a nosotros nos interesa en este artículo sólo dividir archivos de texto en piezas de un número determinado de líneas.

Para lograr esto se emplearía la siguiente forma más simple:

split -l número_de_lineas nombre_archivo_a_dividir

Por ejemplo, si queremos dividir un archivo llamado ejemplo.txt con 8500 lineas, en archivos de 1000 lineas como máximo, se ejecutaría el comando split de la siguiente forma:

split -l 1000 ejemplo.txt

Esto generará 8 archivos de 1000 lineas cada uno y uno más con 500. El comando por omisión nombra a los archivos generados anteponiéndoles el prefijo “x” y los sufijos “aa”, “ab”, “ac” y así sucesivamente. En nuestro ejemplo veremos que los archivos generados se nombraron xaa, xab, xac, xad, xae, xaf, xag, xah y xai.

Si queremos incluir un prefijo determinado a los archivos generados, utilizaríamos la forma siguiente del comando:

split -l número_de_lineas nombre_archivo_a_dividir nombre_prefijo_archivos

Por lo tanto, si queremos que a los archivos les anteceda el nombre “dividido” el comando a ejecutar sería:

split -l 1000 ejemplo.txt dividido

Esto nombraría a los archivos de salida divididoaa, divididoab, divididoac … y así sucesivamente.

Espero y les sea útil. ¡No olviden visitar a los patrocinadores para que este blog siga existiendo!