miércoles, 24 de febrero de 2016

¿Cómo cargar documentos y sus metadatos de forma masiva al gestor documental? Parte 2

Esta es la segunda entrada que dedicamos a los métodos de carga masiva de documentos a Athento ECM (basado en Nuxeo Platform).
En la primera, vimos un método de carga mediante CSV. En esta segunda entrada vamos a ver también un método que utiliza ficheros CSV, pero la diferencia es que en este caso hablamos de una carga desatendida.

Vamos a hacer un pequeño cuadro resumen antes de empezar:

Método
Carga desatendida mediante CSV.
Recomendado para
Realización de cargas masivas de forma constante mediante ficheros CSV.
Importa
Ficheros y metadatos.

Entremos en materia.

Motivación

La creación de documentos puede ser un proceso tedioso cuando se realiza de forma manual. Hay que seleccionar el documento a cargar, darle un título, una descripción,...







Crear un documento require rellenar un formulario para cada uno.


La plataforma Nuxeo soluciona parcialmente esto mediante un módulo que permite cargar un fichero en formato CSV con toda la información necesaria para la creación de un documento. De este modo, incluyendo varias filas en el fichero CSV, se pueden crear automáticamente varios documentos en la plataforma. Aquí se puede ver un ejemplo de ese fichero CSV.

"name","type","dc:title","dc:description"
"my-file","File","My file","This is my file's description"
"my-file-2","File","My file 2","This is my 2nd description"

De este modo, es posible crear documentos de forma muy rápida cargando un CSV que referencie a estos ficheros, los cargue, y cree los documentos con los metadatos indicados en el CSV. Más información aquí

¿Qué permite?

En Athento, hemos detectado que esta forma de cargar ficheros se queda corta en algunos aspectos y por eso hemos decidido ir un paso más allá y ampliar su funcionalidad de modo que:
  1. permita cargar esos ficheros CSV de forma automática. Ya no será necesario cargar los ficheros CSV de 1 en 1, esperando el resultado de la carga, como se hace en la carga CSV normal.
  2. registre los ficheros CSV procesados, tanto los que han sido procesados exitosamente, como los que hayan encontrado algún error.
  3. utilice el sistema de eventos de Nuxeo para registrar la actividad de carga.
  4. permite configurar fácilmente nuevos automatismos de carga. Esto permite ampliar las carpetas que serán monitorizadas para la carga de CSV.

En otras palabras, con este plugin vamos dejando los ficheros CSV en una determinada ruta (folderToCheck) que el sistema va revisando deforma constante para ver si hay nuevos CSVs cargados. A medida que Athento procesa las líneas de cada CSV, va cogiendo los ficheros físicos (binarios) que queremos crear en el gestor desde una ruta especificada en nuxeo.conf(nuxeo.csv.blobs.folder) y los va a subir junto con sus metadatos a partir de una ruta determinada (folderToPut). Durante todo este proceso, el sistema va registrando los eventos que tienen lugar durante la carga.

¿Cómo funciona?

El módulo realiza 2 contribuciones a la plataforma. Por un lado, despliega una nueva operación que, partiendo de una carpeta origen y una carpeta destino indicadas:
  1. Crea un almacén temporal donde mover los documentos CSV que va a procesar. Esta carpeta se llamará "processing". De este modo, se evitan duplicidades en importación.
  2. Revisa la carpeta indicada y mueve todos los CSV que encuentre a la carpeta de procesamiento temporal.
  3. Procesa 1 a 1 todos los ficheros de la carpeta temporal y, para cada uno, revisa el estado de su importación, moviéndolo tras finalizar a la carpeta correspondiente ("processed_ok" o "processed_with_errors").

La operación está disponible en la plataforma.

La otra contribución es al sistema de registro de eventos de Nuxeo para poder registrar la actividad del plugin.

Los eventos de la operación se registran en la plataforma.


Además de liberar a los usuarios de  realizar manualmente el proceso de carga, y de registrar eventos en relación a dichas cargas, otra de las ventajas del módulo de carga desatendida de documentos es que está construído de modo que sea fácilmente utilizable por otros componentes del sistema, a modo de ejemplo, se pueden citar:
- Invocación directa: la operación se puede invocar directamente utilizando la API REST de Nuxeo.
La operación puede llamarse con cualquier cliente REST como Postman.

- Invocación a través de eventos. Es sencillo contribuir un módulo que periódicamente invoque a esta operación con las carpetas de entrada y salida específicas para el caso concreto. Tenemos un ejemplo aquí para mayor detalle. Podemos hacer por ejemplo que el plugin revise cada 5 minutos la carpeta /default-domain/workspaces/CSV/src, si encuentra ficheros CSV, los procesa y crea el contenido que en ellos se indique sobre la carpeta destino /default-domain/workspaces/CSV/dst. Es posible contribuir tantos eventos como se desee.

¿En qué casos se aplica?

Hemos encontrado este plugin especialmente útil en 2 escenarios.

Carga masiva de documentos

Algunos de nuestros clientes tienen la necesidad de cargar ingentes cantidades de documentos de forma diaria o muy frecuente. Gracias a este plugin, tan sólo han de obtener el listado de documentos a crear (algo que es fácilmente automatizable) y colocar los ficheros CSV en la ubicación monitorizada por el sistema. El planificador se encargará de revisar la carpeta cada cierto tiempo y procesar los ficheros CSV creando los documentos en la ubicación configurada en la operación.

Migración de documentos

Cuando una organización se lleva sus documentos de un sistema a otro, éste módulo ha demostrado su utilidad para cargar de forma ordenada y sin saturar el sistema grandes cantidades de documentos. 

Caso práctico

Supongamos que tenemos que cargar 1.000.000 documentos en el sistema al día. Usando el sistema clásico de CSV, podríamos generar un CSV con un millón de líneas y lanzarlo usando la interfaz de Nuxeo. Probablemente tarde una barbaridad y no podamos analizar sus resultados, pero este es el mal menor. Lo más probable es que el sistema se quede inutilizado durante varias horas debido a que le estamos exigiendo gran actividad de forma continuada. Seguramente sea necesario interrumpir la carga para poder dar servicio a los usuarios y al mismo tiempo, los usuarios estarán descontentos por un rendimiento pobre del sistema.  Es decir, nos encontrariamos ante serios problemas de rendimiento.
Con el módulo de Athento, es posible dividir esta carga en trozos más pequeños (por ejemplo, 1000 ficheros CSV de 1.000 líneas cada uno) y lanzarlo a lo largo de todo el día de modo que la carga de documentos pueda llevarse a cabo sin afectar a sus usuarios. Tan sólo habría que cargar en el momento deseado el fichero CSV correspondiente en la ubicación monitorizada (esto se puede automatizar fácilmente. Ver documentación).

Velocidad de carga

El módulo, registra el tiempo que tarda en procesar cada CSV. Hemos hecho algunas pruebas y, partiendo de las siguientes premisas:
  • cada fichero CSV contiene 1.000 líneas,
  • en cada línea del CSV, se crea 1 documento con un contenido de 431 kb,
Esta medida únicamente recoge la creación de documentos (obviando el movimiento de los CSV por las carpetas "processing" y "processed").
Extrapolando datos, podemos decir que en 1 segundo, se crean 11 documentos, y que a lo largo de un día (24 horas) podriamos migrar ese millón de documentos a Athento.

Ventajas

Como hemos visto, la principal ventaja de este módulo es su versatilidad: podemos lanzar la operación de forma manual (mediante API REST) y cargar los CSV de una determinada ubicación creando documentos en otra determinada ubicación, incluso cambiando las ubicaciones de origen y destino "sobre la marcha" sin tener que navegar por el sistema.
Por otro lado, permite una gran variedad de configuraciones cuando se hace uso del sistema de eventos de Nuxeo vinculados a cadenas de operaciones. Esto permite monitorizar carpetas y hacer cargas desatendidas en las que el sistema pueda estar menos ocupado con actividad de usuarios.
En ambos casos, el módulo deja constancia de todo lo que hace en el registro de eventos de Nuxeo además de crear las carpetas "processed_ok" y "processed_with_errors" que permiten reintentar cargas fallidas o reutilizar cargas recurrentes.


Demo

Aquí os dejamos un vídeo con un ejemplo. En él, se cargan 2 ficheros CSV, cada uno, creará 100 documentos de ejemplo. Fijaos en la carpeta monitorizada (folderToCheck) y en que cada minuto, se revisa para procesar los CSV que en ella se encuentren. Tras el procesamiento, los ficheros nuevos aparecen en la carpeta destino dst (folderToPut) y los CSV son movidos a "processed_ok".

video


En un ejemplo real, la carpeta sería monitorizada cada hora o cada 12 horas, para evitar colapsar el sistema. Los ficheros CSV podrían ser de varios miles de líneas en lugar de 100. Hemos cogido estos valores para poder hacer un vídeo cortito y que se pueda ver.
Desde Athento esperamos que encontréis este módulo útil especialmente si deseais cargar documentos en vuestro sistema de forma desatendida. Nuestra experiencia con él ha sido muy buena :)

Descarga este white paper gratuito y aprende sobre gestión documental en la nube

viernes, 12 de febrero de 2016

Downtime 11 de Febrero de 2016

El día de ayer, los usuarios de nuestro cloud experimentaron dificultades de acceso y lentitud en sus plataformas de gestión documental cloud por un lapso de una hora y media aproximadamente.

A las 17:20 de la tarde nuestros sistemas detectaron los issues en nuestras instancias cloud. Cinco minutos más tarde, a las 17:25 empezamos a notificar a nuestros clientes por correo electrónico de la interrupción del servicio.

Una vez que se constataron las condiciones de normalidad, emitimos un nuevo aviso a los usuarios del cloud.

Dado nuestro compromiso con la transparencia del servicio, queremos daros más detalles sobre la naturaleza de las issues registradas ayer. La raíz del incidente se encuentra en un fallo en la red externa a nivel mundial de nuestro proveedor de infraestructura. 

Es la primera vez en los 10 años que llevamos trabajando con este proveedor que se experimentan dificultades como las registradas ayer. El proveedor, que es una reconocida marca del sector, se encuentra trabajando para evitar de nuevo una circunstancia como la de ayer.

De nuevo pedimos disculpas a nuestros clientes por las dificultades que pudieron experimentar ayer. Nuestros canales de soporte están abiertos para aportar información y tranquilidad a todos los usuarios de nuestras plataformas de gestión documental online.
  Descarga el caso de éxito de CRISA

jueves, 11 de febrero de 2016

Athento Integra su Captura de Documentos con Alfresco 5.x

Ya es posible exportar documentos procesados desde el módulo de captura de Athento a Alfresco Enterprise y Community 

Gracias al módulo de captura de documentos de Athento –Athento Smart Engine- es posible enviar a Alfresco documentos clasificados de forma automática y con sus metadatos extraídos.

Madrid, a 9 de febrero de 2016

Athento Smart Engine, el módulo de captura de documentos de Athento cuenta ya con una integración con Alfresco. La integración, disponible para la versión 5.x –, permitirá a los usuarios del software ECM Alfresco contar con una aplicación de captura para realizar operaciones automáticas relacionadas con el tratamiento de documentos digitalizados como la división de batches,  la clasificación automática de documentos, OCR y extracción de datos, entre otras operaciones.

La integración se realiza a través de CMIS 1.0, que permite la exportación de documentos y datos desde Athento hacia la plataforma ECM Alfresco.

De acuerdo con José Luis de la Rosa –CEO de Athento- :
“La ventaja de utilizar CMIS como vehículo de la integración es que permite que la integración sea fácilmente configurable y potencialmente usable para cualquier versión de Alfresco que soporte CMIS”
En el Centro de Documentación de Athento ya puede leerse documentación sobre cómo integrar Athento y Alfresco. La integración entre ambas plataformas permite la definición dinámica de rutas de almacenamiento en Alfresco de acuerdo con el valor de metadatos o con la clasificación de documentos, así como en envío de los datos extraídos de documentos a Alfresco para que se almacenen como metadatos en la plataforma.

 Además de la integración vía CMIS, Athento Smart Engine cuenta con una API que permite el acceso a su funcionalidad a modo de servicios. Athento SE está disponible como servicio cloud, pero también a nivel de instalaciones onpremise.

Athento es una firma española con más de 10 años de experiencia en el desarrollo de software ECM y de captura de documentos. Actualmente, cuenta con representación comercial en América y Europa. Su producto Athento, es el encargado de gestionar la documentación de empresas como Barclaycard, Leroy Merlin, BNP Paribas, la Dirección General de Tráfico de España y Páginas Amarillas, entre otras importantes multinacionales.


 
Crea tu cuenta freemium de captura de documentos

miércoles, 10 de febrero de 2016

Cómo generar un documento desde el gestor documental mapeando metadatos en una plantilla.

Introducción


En la propia definición de la gestión documental acostumbramos pensar un documento como un fichero o archivo (digital). El documento sin embargo,  se compone además, de toda la información adicional a la que denominamos metadatos o propiedades del documento. Estos metadatos son parte de lo que se denomina técnicamente el corpus del documento.

El objetivo que pretendemos con esta funcionalidad es construir el contenido del documento -fichero o archivo- a partir de su propio corpus. Por ejemplo, generar diferentes archivos PDF de un contrato diferenciando el cliente u organismo donde queramos presentarlo, o bien, generar un archivo Word que pueda ser editado posteriormente. Todo este proceso de generación de diferentes contenidos se realiza mediante el uso de plantillas (ingl. templates) asociadas al propio documento.

En otras palabras, podemos definir plantillas que serán rellenadas o completadas con los metadatos almacenados en Athento para generar un archivo o fichero PDF. 

¿Cómo funciona?


A continuación vamos a mostrar un ejemplo completo, desde la edición de documento de tipo Contrato, hasta la generación de representaciones de su contenido con las plantillas asociadas.

Vamos a considerar un documento de tipo Contrato donde vamos a modificar sus metadatos para completar toda su información.

Edición de metadatos de un documento

Cuando guardamos el documento vemos como, sin aún tener el propio archivo de contrato, ya tenemos su definición con los valores. Adicionalmente, podemos observar que estos valores tienen distintos formatos: texto, fechas, valores numéricos, etc. que son tratados internamente por el gestor documental para su posible búsqueda, su clasificación, categorización, asociación a flujos de trabajo, etc.

Visualización de los metadatos de un documento Contrato

Crear una plantilla (template)

Para crear un plantilla para nuestro tipo documental Contrato tenemos que crear un nuevo tipo documental de tipo Template.

Una buena práctica puede ser establecer una ruta común para crear todas nuestras plantillas dentro del gestor documental, en nuestro caso, lo creamos en el espacio de trabajo "Mis plantillas".

Crear una nueva plantilla como documento Template

En el campo del contenido de la plantilla, vamos a generar un archivo ofimático PlantillaContrato.odt donde diseñaremos el "cómo será" nuestro Contrato generado.

Mostramos un ejemplo de diseño,



Para incluir los valores de los metadatos del documento contrato "Contrato ejemplo" que creamos al principio, debemos introducir campos de sustitución con patrones concretos. Estos patrones tienen el formato:

${doc.metadato} ó ${doc['esquema:metadato']}

donde metadato hace referencia al nombre en la definición del corpus del documento. Por defecto, todos los documentos del sistema contienen metadatos básicos, como por ejemplo:

  • dc:title: título del documento.
  • dc:description: descripción del documento
  • dc:modified: Fecha última modificación
  • id: es el identificador del documento
  • versionLabel: es la versión actual del documento
  • etc.
Si queremos sustituir de la definición del corpus del documento ideado y creado por nosotros, simplemente tendremos que colocar el valor del metadato dentro del patrón ${...}. Para nuestro caso con nuestro tipo documental Contrato, mostramos a continuación algunos valores que hemos usado en la primera página de nuestra plantilla PlantillaContrato.odt.

  • contrato:tipo: es el tipo del contrato
  • contrato:precio: es el precio del contrato
  • contrato:responsableAutor: es el responsable asignado al contrato
  • etc.

Además de estos valores relativos al documento, pueden incluirse valores adicionales que pueden ser reemplazados en la plantilla, como por ejemplo:

  • auditEntries, donde se puede ver todo el listado de cambios realizados sobre el documento.

Básicamente, lo que técnicamente estamos visualizando es un reemplazo de patrones por parámetros dentro de mapa de valores preparados para la sustitución.

Asociando la plantilla al documento

Para asociar una plantilla a un documento podemos hacerlo en la creación del documento, donde nos dará a elegir la plantilla existente; o bien, para los documentos que ya fueron creados en el gestor documental, contamos con la asociación mediante el icono que localizamos en la parte superior derecha del gestor documental, y en el que mostrará un popup con la posibilidad de elegir una plantilla:

Icono de asociación de plantilla a documento

Localización del icono de asociación de plantilla (arriba a la derecha)

Popup con la elección de la plantilla


Generando el documento desde la plantilla

Tras haber creado el documento con una plantilla, o bien, haberla asociado a un documento existente, contaremos con la opción de generar el documento basado en la plantilla disponible. Es importante destacar que podemos añadir varias plantillas para un tipo documental y con ello generar distintas representaciones, por ejemplo, generar un PDF o archivo .ODT o .DOCX según necesitemos.

A continuación, mostramos como hemos añadido una nueva plantilla para representar nuestro Contrato en PDF. La plantilla la hemos llamado Plantilla Contrato PDF.

Plantillas asociadas al documento

Resultado para la plantilla

Para finalizar, mostramos el resultado de nuestro documento "Contrato Ejemplo" generado desde la plantilla  "Plantilla contrato" con archivo PlantillaContrato.odt,

Documento ODT editable generado


y la representación del documento en PDF con la plantilla "Contrato Plantilla PDF",


Documento PDF generado desde plantilla



Descarga este white paper gratuito y aprende sobre gestión documental en la nube

lunes, 1 de febrero de 2016

Utilizando varios métodos de extracción para un mismo metadato

A veces, no conseguimos extraer siempre el valor de un metadato con el mismo método. En estos casos, se requiere utilizar varias técnicas para extraer el valor del metadato del máximo de documentos posible.

Vamos a ver un ejemplo de cómo “Definir varios métodos de extracción para el valor de un metadato” que se ha publicado en el Documentation Center de Athento.

En el caso del ejemplo, en algunas muestras de órdenes de fabricación el metadato “Código Cliente” se saca mejor mediante OCR zonal, pero en otros casos, funciona mejor buscar el metadato indicando dos expresiones entre las cuales se encuentra el código del cliente.

En Athento Smart Engine -Athento SE- existe la posibilidad de definir varios métodos de extracción automática de datos para conseguir extraer el valor de un metadato.

¿Cómo hacerlo?


Tendremos que crear un metadato en Athento SE por cada uno de los métodos a utilizar.

En el caso del ejemplo, habrá que crear dos metadatos:
  • Código de Cliente (utiliza start y end words).




  • Código de Cliente OCR Zonal (para extraer el dato mediante OCR zonal si el primer método falla).




Una vez que hemos definido todos los métodos de los que nos podremos ayudar para extraer el dato, es necesario crear un metadato extra que se va a quedar con alguno de los metadatos que no esté vacío. Esto lo hacemos definiendo una expresión dinámica (dynamic expression). Esta expresión dinámica simplemente indica al sistema que se quede con un valor o el otro. La expresión sería la siguiente:

fil.gmv('metadatatype-A') or fil.gmv('metadatatype-A')


¡Listo! :) Recuerda que puedes hacer esto y mucho más con la captura de documentos de Athento.


Crea tu cuenta freemium de captura de documentos

AddThis