lunes, 19 de noviembre de 2012

Una y no más, Santo Crystal Reports

Tristemente, en mi empresa tenemos alguna aplicación que utiliza Crystal Reports. Más tristemente, la versión de Crystal Reports es 2008. Digo esto último porque quizás futuras versiones faciliten más la vida al desarrollador, porque desde luego la versión 2008 no es nada agradecida.

A modo de diario y previendo futuras publicaciones de esta misma aplicación, dejo a continuación los pasos que hemos tenido que llevar a cabo para hacer que los informes de Crystal funcionen en ASP.NET.

El sistema operativo de despliegue es un Windows Web Server 2008 R2. La versión del framework de la aplicación de ASP.NET es 3.5… y lo dicho, la versión de Crystal es 2008.

Lo primero es descargar el runtime de CR. Podría parecer sencillo, pero no lo es. Los señores de SAP han decidido que sea todo un galimatías encontrar algo en su página, así que si no tiene el enlace directo podrías vértelas canutas para descargar el runtime, pero bueno…

La página de descarga de diversas utilidades (entre ellas el runtime) es https://websmp230.sap-ag.de/sap%28bD1lcyZjPTAwMQ==%29/bc/bsp/spn/bobj_download/main.htm Aquí tienes que localizar “Crystal Reports 2008 Service Pack 4 – Redist Install”. https://smpdl.sap-ag.de/~sapidp/012002523100008782532011E/cr2008sp4_redist.zip Me hubiera gustado bajarme el SP5 que se anuncia en https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567 pero me ha sido imposible registrarme y la descarga pide nombre de usuario y contraseña.

Una vez descargado, se instala y listo. Crea una aplicación web llamada “crystalreportviewers12” en el sitio web por defecto (tampoco pregunta donde quieres crearla no vaya a ser que sea de utilidad, que aquí estamos para complicar los cosas… habrá pensado quién hizo el paquete de instalación). Como nuestra aplicación no está en el sitio web por defecto (está en otro sitio web), pues toca crear un directorio virtual en nuestro sitio web de la aplicación, apuntando a C:\Program Files (x86)\Business Objects\Common\4.0\crystalreportviewers12 con el nombre “crystalreportviewers12”. Además, también he tenido que editar el fichero web.config de la anterior ruta y quitar la siguiente sección

<system.web>

<!-- request length is 20MB -->

<httpRuntime maxRequestLength="20000"/>

<sessionState timeout="20" />

</system.web>

Como parte de la instalación también ha agregado al sitio web por defecto, una carpeta aspnet_client. No preguntes y cópiala también en la raíz de tu sitio web.

Otra cosa un tanto hiriente es que tendrás que compilar tu aplicación en x86. En el siguiente foro lo explican bien http://scn.sap.com/thread/1519581, pero básicamente “Only the .NET 2005 (CR 10.2) and .NET 2008 (CR 10.5) bundles are 64 bit. You must compile the app as 32 bit and use the 32 bit CR runtime.”

Además, también tendrás que habilitar en el grupo de aplicaciones en que esté asignada tu aplicación “Habilitar aplicaciones de 32 bits”.

clip_image001

Aunque en esta publicación no me ha pasado, recuerdo también haber encontrado problemas con la típica imagen de logo del cliente en un informe. En su día me ayudaron los siguientes enlaces (problemas con permisos, problemas con CrystalImageHandler.aspx, etc.) http://www.sdn.sap.com/irj/boc/go/portal/prtroot/docs/library/uuid/a0437ea8-97d2-2b10-2795-c202a76a5e80?QuickLink=index&overridelayout=true

También es posible que tengas que mapear CrystalImageHandler.aspx en el IIS. Visita este enlace para más información http://crmtogether.com/mwCrystal/index.php?title=Troubleshoot

La moraleja de todo esto es que “una no más, santo tomás”. No volveré a usar Crystal Reports para ninguna tarea de reporting. Probaré con otros soluciones de terceros o incluso me planteo hacerme los informes a mano. De hecho, creo que los informes, cada vez más, son un recurso en desuso que solo sirven a un pocos y durante un tiempo limitado (después los requerimientos cambian y nos quedamos con una ristra de informes que no valen para nada).

Un saludo!

No hay comentarios:

Publicar un comentario