miércoles, 25 de agosto de 2010

m4:executereportsec

En varios post he hablado de cómo generar reports en el ESS mediante el uso del tag m4:executereport. Esta forma genera un report en la ruta "temp" de los m4webservices, añadiendo un usuario, la sesión, el nombre del report como ruta al report en PDF que Meta4 genera, como se puede ver en la siguiente imagen:


Cuando generamos un informe en el ESS con este tag podemos ver la ruta en la barra de dirección:


La ruta es: https://xxxxxxxx/temp/SICDAVID_34589BAEC222C212B9FDAE65A1310EC260963EA355BB3EC92F69B88F8486FD77/reports/CSL_RP_GNRAL_EVALUACION/CSL_RP_GNRAL_EVALUACION.pdf

Esta forma de generar un report tiene una seríe de problemas:

  1. Si la sesión no finaliza correctamente no se borran los informes

  2. Ocupa espacio en disco físico

  3. Si el nombre de usuario tiene caracteres especiales (espacios, "ñ"'s,...) , en UNIX/AIX, no se permite la impresión del informe porque el File System es incapaz de localizarlos.

  4. Poco seguro, si no se borran los ficheros alguien podría tener acceso a ellos y ver un Recibo de nómina, un Certificado de Haberes, informes personales de evaluaciones,...
Por ello y desde hace algún tiempo, a los informes/reports en el SSE los llamo usando el tag m4:executereportsec, cuya llamada es exactamente igual, pero evito que se generen en una ruta del servidor.


La ejecución de esto informes se guarda en base de datos y, como se puede ver en la siguiente imagen, en la barra de dirección del browser (navegador) aparece una ruta un poco menos explícita ya que se utiliza el servlet download_blob:



La ruta es:
https://xxxxxxxx/servlet/download_blob?task=REPORTS&item=SRP_HTML!HTML_RPT[FIRST].HTTP_DATA_FILE&no-cache=true

Retomando un poco los problemas del tag m4:executereport
  1. si la sesión no finaliza correctamente no se borran los informes; ahora, como no se guardan en disco no hay que borrarlos.
  2. Ocupa espacio en disco físico; ahora, como no se guardan en disco no se ocupa nada.
  3. Si el nombre de usuario tiene caracteres especiales (espacios, "ñ"'s,...) , en UNIX/AIX, no se permite la impresión del informe porque el File System es incapaz de localizarlos; ahora, como no se guardan en disco no hay problemas de generación de rutas en disco.
  4. Poco seguro, si no se borran los ficheros alguien podría tener acceso a ellos y ver un Recibo de nómina, un Certificado de Haberes, informes personales de evaluaciones,... ahora, la ejecución es totalmente segura y nadie verá nada que no pueda o deba ver.
Espero que os haya servido!

2 comentarios:

Oscar López dijo...

Además es muy conveniente si el Meta4 Application Server (appserver) está en una máquina distinta a la máquina donde reside el Tomcat/Jrun/IIS que uses como webserver.

Realmente se debe parametrizar en el configclient.xml, pero usando este tag nos olvidamos de parametrizarlo.

Oscar López dijo...

Buenas parece que con tecnología 7.1Sp5 estamos teniendo problemas para que generar reports usando este tag. Cuando tengamos el problema resuelto os lo haré saber.

Un saludo!
Oscar L.