En Mi Local Funciona

Technical thoughts, stories and ideas

¿Oracle ADF y qué sistema de Reporting utilizo?

Publicado por Alejandro Font el

OracleOracle ADF

Este artículo intenta responder a esta pregunta, que en casi todas mis visitas a clientes me han hecho en algún momento.

En mi opinión el sistema de reporting debería plantearse de manera independiente a la aplicación que estamos desarrollando. Ya que tu aplicación puede no cambiar pero sí tus necesidades de reporting, la información que sacas de ella y cómo la extraes.

Existen muchas opciones de extraer información útil de nuestra aplicación y a veces no es solo cuestión de escoger una, sino una combinación de ambas.

A continuación trataré de explicar algunas de las opciones que tenemos en Oracle ADF.

Sistema Tradicional de Reports:

Es el sistema de reporting habitual a través de PDFs.

Aquí tenemos diversas opciones, en la comunidad Java quizá la más extendida sea Jasper, que cuenta con una herramienta para elaborar reports muy intuitiva. Además cuenta con una pieza muy interesante como es Jasper Server.

Pero si venimos de Oracle Forms, seguramente venimos haciendo nuestros reports o listados con Oracle Reports, por lo que quizá nos es más práctico aprovechar todos esos listados que ya tenemos y aprovechar el conocimiento de nuestro equipo en dicha herramienta. Llegados a este punto cabe destacar que la evolución natural dentro de Oracle como herramienta de reporting sería ir hacia Oracle BI.

Sea cual sea nuestra elección, desde ADF podremos crear una API para lanzar los listados sin problemas. Y como se ha comentado al principio es importante desarrollar esa lanzadera de reports de forma aislada, por si la herramienta de reporting cambiase en un futuro poder hacer el cambio sin excesivos problemas.

En la elección de esta herramienta entran muchos factores: coste de la herramienta, sistemas de exportación de la misma, usabilidad, facilidad de uso, conocimiento previo del equipo de desarrollo, formas de integración, sistema de seguimiento de los procesos lanzados, etc. Además, puede que incluso la elección de la herramienta venga dada por ser parte de una decisión horizontal dentro de la compañía y no se analicen factores estrictamente relacionados con ADF.

Por otro lado en ADF tenemos opciones relacionadas indirectamente con la explotación de datos que pueden ser muy útiles como complemento a la solución de reporting escogida.

Paginas Imprimibles:

En ADF tenemos la operación showPrintablePageBehavior. Esto nos elimina todos los elementos redundantes de una página y nos abre una versión lista para ser impresa.

En este caso no mostramos información extra al usuario sino que simplemente es una manera rápida de ofrecer al usuario poder sacar una impresión de lo que está viendo en ese momento.

  <af:commandButton text="Click me">
      <af:showPrintablePageBehavior/>
  </af:commandButton>

Exportación a Excel-CSV:

Otra de las grandes facilidades que tenemos en ADF es la exportación a Excel o a CSV, sin tener que usar APIs y de forma totalmente declarativa.

Podemos ofrecer al usuario extraer información de la aplicación en formato Excel de una manera rápida y sencilla mediante exportCollectionActionListener.

El exportCollection actualmente solo funciona para tree, table o treetables y nos permite exportar todas las filas o únicamente las seleccionadas:

<af:table id="table" ...> ... </af:table>  
<af:commandButton text="Export To Excel" immediate="true">  
   <af:exportCollectionActionListener type="excelHTML" exportedid="table" filename="export_xls" title="ADF Faces Export"/> 
</af:commandButton>  

ADF Desktop Integration (ADF Di):

Este es un gran desconocido dentro del mundo ADF. Si lo que tenemos en nuestra empresa es un grupo de personas que trabajan tanto con Excel como con la propia aplicación y lo que quieren es poder modificar datos en Excel y que la aplicación sea consciente de ello y refleje esos cambios, entonces quizá deberíamos tenerlo en cuenta.

Se trata de comunicar los dos mundos: ADF y Excel URL del producto y Demo.

Es un producto que en los últimos años ha evolucionado mucho y que se debería contemplar como alternativa antes de crear nuestros "sistemas propios de integración".

ADF DVT (Data Visualization Tools):

Aunque no suele ser habitual ni es sustituto de un sistema de reporting, es interesante tenerlo en cuenta. Como una imagen vale mas que mil palabras, en algunas ocasiones un desarrollo tipo Dashboard, con la cantidad de componentes de explotación gráfica que tiene ADF, puede sustituir a un buen número de reports.

En nuestro webinar sobre las novedades de 12c se pueden ver algunos de los componentes mas vistosos.