martes, abril 17, 2012

Enviar documentos a Alfresco de forma desantendida

En ocasiones necesitamos enviar a Alfresco documentos que han sido escaneados o generados por otras aplicaciones de forma automatizada.

La forma más común de "inyectar" documentos a Alfresco es mediante el uso del protocolo CIFS, de forma que podemos usar una unidad de red o recurso compartido (según el sistema operativo utilizado) para guardar el documento directamente en el entorno de Alfresco.

En ocasiones, bien porque el producto está limitado a usar unidades de red, o bien, porque necesitamos que los ficheros generados se envíen de alguna forma u orden y a una hora o espacio de tiempo determinado, hay que usar sistemas de copia o de movimiento de ficheros de forma desatendida.

En este caso, se ha utilizado un sistema utilizando el producto DigiDocFlow (http://www.digidocflow.com/) que en lugar de guardar el documento escaneado y el correspondiente fichero XML con los valores de los metadatos en el recurso de red del servidor donde está instalado Alfresco, se ha utilizado un directorio local de la máquina donde está instalado el producto (en Windows XP) y mediante un proceso batch se copian cada minuto a una unidad compartida de red que hace referencia a una carpeta de Alfresco llamada FROMSCAN.


Los pasos han sido:

1. Crear una carpeta en Company Home de Alfresco llamada FROMSCAN. Esta llevará las reglas necesarias para mover los documentos que entran.

2. Crear una carpeta local en Windows XP donde está instalado DigiDocFlow llamada también FROMSCAN.

3. Escribir el siguiente fichero batch:

@ECHO OFF
SET CARPETAWIN=C:\FROMSCAN
SET CARPETAALF=Y:\FROMSCAN
COPY /Y "%CARPETAWIN%\*.pdf" "%CARPETAALF%"
COPY /Y "%CARPETAWIN%\*.xml" "%CARPETAALF%"
IF ERRORLEVEL 1 GOTO SALIR
DEL /F /Q "%CARPETAWIN%\*.*"
:SALIR

4. Crear la tarea (ejecutar en intérprete de comandos en Windows XP llamado CMD.EXE) para que se realice (ejecute) el batch cada hora:

SCHTASKS /CREATE /TN FROMSCAN /TR "CMD /C \"C:\FROMSCAN.BAT\"" /SC HOURLY

Hay que tener en cuenta "escapar" las comillas con \ para que no se produzcan errores, no en este caso, pero si, si en el directorio o nombre de fichero batch se contienen caracteres en blanco.

De esta forma podemos tener incluso un directorio local donde van a parar ficheros que provienen de un ERP, un CRM o un sistema de escaneo como Kofax o DigiDocFlow sin tener que usar ningún tipo de conector y personalizando tanto el tiempo de envío de los ficheros como el orden.

2 comentarios:

javier.martinez dijo...

Buenas Fer, como siempre artículos que ayudan al día a día .. por cierto, como se nota que ahora estás más metido en los procesos de digitalización! ;D

fegor dijo...

Gracias Javier, si, se nota un poco ¿no? :)