Bloggers recientes

 

[ Blog ]
[ Wiki ]
[ Slideshare ]
[ Twitter ]
[ YouTube ]
Cesar Capillas Mensajes: 145
Estrellas: 7
Fecha: 21/04/14
Patricia Yagüe Mensajes: 3
Estrellas: 0
Fecha: 14/04/14
Silvia Rodriguez Mensajes: 6
Estrellas: 0
Fecha: 17/03/14

Archivo

Tags

noBlogo - El blog de zylk.net

Entradas con etiqueta <em>ef4ktur</em>.

Presentaciones de firma digital y gestion documental colaborativa con Alfresco

Os dejo un par de links de slideshare:

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.
 

Facturacion electronica y gestion documental con ef4ktur y Alfresco

Hace un par de semanas estuvimos en CEBEK presentando y comparando dos gestores documentales: Alfresco y Sharepoint. Por nuestra parte presentamos una serie de casos de uso de Alfresco sencillos referidos a facturación electronica, firma digital en cliente y servidor, e indexación de texto OCR. Un caso bastante útil que implementamos y utilizamos como empresa, planteaba una aproximación a la factura electrónica con ef4ktur y Alfresco, combinando la firma digital en un cliente de facturación que utiliza el formato estándar XML Facturae, y la modelización, tipificado de metadatos, indexado y custodia de facturas en un gestor documental. Ef4ktur es una solución de software libre de factura electrónica multiplataforma que permite a las empresas trabajar entre sí de forma sencilla con las administraciones vascas. Este procedimiento es facilmente extensible a otros clientes de facturación o sistemas ERP, y gestores documentales.

Este es el aspecto del cliente de ef4ktur desde donde crearemos la factura electrónica y una vez creada, guardaremos la factura en el espacio Facturas de la unidad compartida (en este caso CIFS) de Alfresco.

En la demo, se mostraron las siguientes capacidades del gestor documental Alfresco:

  • Las posibilidades de Alfresco de unidad compartida con un sistema granular de permisos basado en roles.
  • Los modelos de contenido de Alfresco, donde la factura se modelizó en base a unos metadatos de negocio correspondientes al emisor, receptor, firma digital y demas detalles de factura.
  • La definicion de un extractor a medida de XML Facturae y el mapeo a los consiguientes metadatos del tipo de contenido factura.
  • Las capacidades de Alfresco para automatizar acciones (reglas de contenido) en el gestor documental como la especialización de un tipo de contenido o la extracción de metadatos.
  • La indexación de los metadatos de negocio.
  • La búsqueda de metadatos de negocio personalizados, por campos como el CIF del receptor.
  • Las posibilidades de subir documentos al repositorio documental desde el cliente via web Service o CMIS.
  • Las posibilidades de ver reports y listados de facturas en base a templates de espacio (con el API de Freemaker) y web scripts.

La idea fundamental es que una regla de contenido permite definir acciones automáticas (condicion/accion) al subir un determinado contenido (en este caso una factura en formato XML Facturae), como extraer metadatos. De este modo, al subir el archivo al espacio Facturas, ya sea via web o via carpeta compartida, el XML adopta el tipo de contenido Factura definido previamente con sus metadatos correspondientes. Los metadatos de la factura se extraerían e indexarían automaticamente en el proceso de subida, de modo que podrían buscarse propiedades especificas de las facturas en el buscador.
 



Otra opción no comentada en la jornada es la de realizar el envío de las facturas utilizando el concepto de receptor que maneja ef4ktur. Esta característica permite definir receptores de facturas desde la interfaz del propio programa. Un receptor no es más que una empresa/persona a la que se le va a facturar algo y que tiene habilitado un servicio web para recibir la factura. En zylk.net hemos creado un servicio web que es capaz de comunicarse con el programa ef4ktur y que además se comunica con el gestor documental alfresco.
 



Por lo tanto, para que nuestros proveedores nos envíen facturas electrónicas, basta con que añadan en ef4ktur a zylk.net como receptor y podrá enviarnos las facturas firmadas con un solo click. Una vez recibida la factura, ésta se incorpora al conjunto de acciones definidas de manera automática en alfresco.

Para más información de como implementar la factura electrónica con Alfresco, pinche aqui.

Enviando facturas via email a Alfresco

Uno de los canales más comunes para nuestros documentos de empresa, independientemente que diseñemos sistemas complejos de gestión y almacenamiento, sigue siendo el correo electrónico. Revisando un artículo del blog key to content, he pensado una solución para la denominada "data ingestion" de determinados contenidos en un gestor documental, para uno de nuestros procesos de firma digital.

Hemos hablado aquí en algunas ocasiones de los clientes de firma digital (sinadura) y facturación electrónica (ef4ktur) y la integración de ciertos procesos y conectores con Alfresco. En ambos clientes existe la posibilidad de enviar un PDF firmado o un XML Facturae firmado a un destinatario a través de un cliente de correo externo. Y de eso precisamente trata el artículo de hoy, de inyectar o subir un contenido a nuestro repositorio de Alfresco enviando un correo electrónico.

Para ello brevemente debemos configurar las opciones de correo electronico (alfresco > 3.2) en el fichero alfresco-global.properties de modo que:

email.inbound.enabled=true
email.server.enabled=true
email.server.port=1125
email.server.domain=zylk.net
email.inbound.unknownUser=anonymous
email.server.allowed.senders=.*

Tras reiniciar el servidor son necesarios un par de cosas:

  • Definir los usuarios senders de contenidos en el grupo EMAIL_CONTRIBUTORS
  • Elegir un espacio (por ejemplo el espacio Facturas), aplicarle el aspecto Email Alias y editarlo como "facturas". 

De este modo, cuando un usuario autorizado (desde el email que tiene definido en alfresco) envie un correo a facturas AT alfresco.dominio.net el correo y el adjunto se guardarán en la carpeta definida (también se puede usar el email ID). De este modo, imaginemos que firmamos una factura desde el cliente de facturación electrónica ef4ktur y la enviamos por correo electrónico con la opción Enviar que incluye el programa, esta se guardará automáticamente en el espacio Facturas. Si ademas lo conectamos con otros procesos de extracción de metadatos de los que hablamos en artículos anteriores tenemos nuestras facturas, guardadas, firmadas digitalmente, tipificadas y con sus correspondientes metadatos extraídos automáticamente a través de una regla de contenido.

 

Las propiedades del mensaje de correo enviado:

Y la factura adjunta de la cual se han extraido los metadatos correspondientes:

 

Otra posibilidad sencilla, no sólo de almacenaje, es que la misma regla lance un flujo de trabajo simple de aprobación en Alfresco para que un responsable valide la factura a enviar.

Por otro lado, como peros de este procedimiento, diriamos tres:

  • que no hay enlace/relación directa entre el adjunto y el mensaje de correo, solo el metadato Archivos Adjuntos.
  • que no se pueden enviar dos emails con asunto igual (da un error de envío de correo)
  • que no se pueden enviar ficheros adjuntos con nombres iguales a los anteriormente enviados, porque los machaca.

Además, esta característica de inyección de datos puede explotarse para hacer cargas sencillas de documentos via scripts de shell con el comando mail aunque no es el procedimiento indicado para cargas masivas. Por poner un ejemplo de uso de scripting, en un artículo de hace algún tiempo escribía sobre la utilización de cups-pdf como impresora virtual de firma digital con las características de línea de comandos de sinadura. Pues bien, en ese script podemos incluir una sentencia del estilo:

id=`date +%DT%T`

uuencode factura316-signed.pdf factura316-signed.pdf | mail -s "Printed and signed by cups-pdf at ${id}" facturas@alfresco.dominio.net

y además subiremos nuestro documento impreso convertido a pdf (un formulario web, un documento de openoffice, una imagen.....) firmado digitalmente en nuestro repositorio de Alfresco.

 

 

Mostrando 4 resultados.