domingo, 12 de marzo de 2017

Configurar Base Datos a reportes de Pentaho 6.1 sin herramienta visual



Hoy les voy a enseñar como configurarle los parámetros que debe tener un fichero .prpt o reporte de pentaho sin la necesidad de usar la herramienta para reportes del pentaho(PDR).
Este artículo le ayudará mucho cuando alguien crea un reporte con pentaho y desea probarlo en su servidor, decirle que ese fichero cuando se crea cuenta con parámetros específicos de base datos, como driver, dirección o url del servidor, puerto, usuario, contraseña, nombre de la base datos y nombre del servidor, esta información es necesaria configurarla.
Existen otras variantes, como abrir el reporte con algún compresor y cambiar estas variables visualmente, es verdad que es más fácil pero tiene sus desventajas, imagine que no tiene el reportador de pentaho, o no sabe usarlo, o son varios ficheros a configurar y se hace tedioso ir uno a uno.
Antes de comenzar, debe tener instalado un servidor de pentaho en Linux, y tomaremos este mismo servidor para aplicar lo que aquí le enseño.
Lo primero que haremos es copiar el reporte para una carpeta cualquiera, destacar que dicho reporte en un compactado zip y dentro aparecen los archivos .prpt que son los reportes que se crean usando el PRD(Reportador de pentaho), puede estar ubicada en el home del usuario, luego crear un fichero y dentro teclear lo siguiente:
#!/bin/bash

BASEDIR= "`pwd`"
FILENAME=”Reportes”
FILEZIP="${FILENAME}.zip"

Ahora pensemos que tiene más de un reporte, habría que recorrerlos uno por uno e ir realizando los pasos necesarios para configurarle los parámetros. Para recorrer los ficheros vamos a teclear lo siguiente:
for i in *.prpt; do
Necesitaremos  una variable para guardar solo el nombre del fichero:
NAME="`ls ${i} | cut -d. -f1`"
Descomprimimos el fichero del reporte, con el comando unzip:
            unzip -qo -d "${NAME}" "$i"
En el siguiente paso es el más importante, porque aquí es donde cambiamos los parámetros del servidor:
driver= com.mysql.jdbc.Driver
ip=192.168.0.1
puerto=3306
bd=dwh
usuario=root
clave=toor

find "${NAME}" -type f -name *sql-ds*.xml \
  -exec sed -i "s/\(<data:driver>\)\(.*\)/\1${driver} <\/data:driver>/" "{}" \; \
  -exec sed -i "s/\(<data:url>\)\(.*\)/\1jdbc:mysql:\/\/${ip}:{puerto}\/{db}<\/data:url>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"user\">\)\(.*\)/\1${usuario}<\/data:property>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"password\">\)\(.*\)/\1${clave}<\/data:property>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"::pentaho-reporting::port\">\)\(.*\)/\1${puerto}<\/data:property>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"::pentaho-reporting::name\">\)\(.*\)/\1${db}<\/data:property>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"::pentaho-reporting::database-name\">\)\(.*\)/\1${db}<\/data:property>/" "{}" \; \
  -exec sed -i "s/\(<data:property name=\"::pentaho-reporting::hostname\">\)\(.*\)/\1${ip}<\/data:property>/" "{}" \;

En la porción de código anterior, si se dio cuenta que todos parámetros se encuentran en un fichero xml con nombre sql-ds.xml, ahí dentro está no solamente la configuración de la base dato, sino también el código mysql que fue usado para conformar el reporte.
Ahora solo nos queda actualizar nuestro reporte original, para ello primero borramos el fichero:
rm -f "${i}"
Luego entramos a la carpeta donde están los cambios y comprimimos el contenido:
cd "${NAME}"
zip -rqo "../${i}" *

Para acabar esta parte, debemos borrar el directorio porque ya no nos hace falta, porque en el paso anterior, comprimimos los cambios en un fichero nuevo.
cd ..
rm -rf "${NAME}"

Y para terminar debemos actualizar el fichero principal y borrar las huellas.
cd "${BASEDIR}/${FILENAME}"
zip -rq "${BASEDIR}/${FILEZIP}" *
rm -rf "${BASEDIR}/${FILENAME}"


Hasta aquí este pequeño artículo, espero que este artículo le pueda servir de ayuda.

¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon