Mejorando ef4ktur: gestion documental de facturas y explotación de datos

ef4ktur es una iniciativa de las Diputaciones Forales Vascas para dotar gratuitamente a sus emisores de facturas de una solución de factura electrónica basada software libre y multiplataforma. La semana pasada, hicimos un par de pruebas de concepto para poder usar el cliente de facturación electrónica en un entorno distribuido.



Para ello, se nos planteaban dos retos relacionados con el back-end de la aplicación:

  • Utilizar un backend relacional.
  • Utilizar un backend documental.

El aplicativo es un cliente de escritorio que utiliza un modelo entidad-relación, para el almacenaje de los datos relacionados con las facturas como son emisores, receptores o artículos. Estos datos se guardan en una base de datos monousuario (HSQLDB) y utiliza el ORM hibernate para su gestión.

Por otro lado, el aplicativo se apoya en el sistema de ficheros para almacenar las facturas con sus firmas, en formatos PDF y Factura-e, y los ficheros adjuntos de una factura, como pueden ser los contratos asociados.

Una vez analizados los dos puntos anteriores procedimos a realizar los siguientes cambios:

  • Sustituir la base de datos por un servidor de base de datos multi-usuario como mysql-server.
  • Sustituir el sistema de ficheros por un gestor documental, como solución de albergue y custodia como Alfresco ECM.

El primer punto fue relativamente sencillo ya que bastó con cambiar el archivo de configuración de hibernate para que hiciera uso del dialecto de MySQL. Con esto y con la re-importación de algunos datos existentes ya teníamos ef4ktur funcionando contra el servidor MySQL. Lo mismo, puede hacerse de manera sencilla contra Postgresql, Oracle, SQLserver, DB2 o alguna de las soportadas por el ORM Hibernate.



Para el segundo punto se nos ocurrieron varias aproximaciones:

  • Utilizar las API's de los gestores documentales, ya sean via REST o Web Services normalmente, aunque esto en principio va a depender del gestor documental, de una version de su SDK.
  • Montar una unidad distribuida sobre el gestor documental, a través de un protocolo standard que soporte el gestor documental, como por ejemplo FTP, Webdav, CIFS o NFS.
  • Crear un conector CMIS y modificar el código de ef4ktur para que el hiciera uso de dicho conector. La principal ventaja es que esta solución va a ser independiente del gestor documental siempre que entienda CMIS, y buena parte de los gestores documentales modernos soportan el protocolo CMIS como Filenet, Oracle UCM, Documentum, Sharepoint, Nuxeo o el mismo Alfresco.


Como estabamos haciendo pruebas de concepto relacionadas con CMIS, decidimos optar por la ultima vía, y realizando una serie de pequeños cambios hemos implementado un módulo CMIS que nos permite guardar las facturas en una carpeta del gestor documental Alfresco. Vemos a continuación una serie de capturas de la estructura jerárquica de espacios de facturas y adjuntos planteada en Alfresco, con sus correspondientes facturas en formatos XML y PDF.

 

Creemos que esta orientación puede ser interesante combinada con los motores de tipos de contenidos, extracción de metadatos e indexación presentes en Alfresco de los que ya hemos hablado en otra ocasión o de otras características de data ingestion via correo electrónico. En un futuro esperamos poder disponer de una versión 100% funcional con estas características.


 

Por otro lado, el hecho de disponer de los datos de facturación en un servidor de base de datos multiusuario y con un modelo diseñado en estrella para favorecer su explotación en un motor de inteligencia de negocio, como Pentaho BI, nos permite crear cubos OLAP multidimensionales, cuadros de mando o informes de nuestra facturación de una manera sencilla.
 

00

Más entradas de blog

Añadir comentarios