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.
No hay comentarios:
Publicar un comentario