Proyecto

General

Perfil

Plugin Hotfolder Coomonomeros

Información

Autor Laureano Quintero
Sitio Web http://www.adapting.com
Repositorio source Actualizar_Metadatos_Coomonomeros
Código fuente http://svn-community.adapting.com:8080/svn/Community/Plugins/Hotfolder/Actualizar_Metadatos_Coomonomeros
Versión Actual v2.0
Compatible con Hotfolder 3.0.0

Resumen

En esta wiki se explica la estructura básica que deben tener los plugins para poder funcionar en el hotfolder Updatemetadata. En ella se explicarán detalles que se han ido encontrando durante el desarrollo del mismo.

Notas de instalación

Descargarse e instalar la versión del hotfolder 3.0.2 Descargar este plugin y abrirlo con visual studio.
Una vez instalado el hotfolder, hay que configurar todos los hotfolder necesarios, cada uno apuntando al Abox correspondiente. Cuando se ejecuta el hotfolder se creará una carpeta extensions y otra Rules, dentro de las cuales habrá una subcarpeta HotfolderX para cada uno de los hotfolder configurados. Es dentro de estas carpetas donde se debe depositar el fichero de reglas y el fichero de la compilación del plugin, en caso de que sea necesario. En caso de estar vacías no se realizará ninguna acción adicional con los documentos procesados y se seguirá las reglas del fichero de reglas general ubicado en la raíz de la carpeta del hotfolder.

Guía de uso

En la solución del plugin existe un proyecto llamado Adapting.Hotfolder.Extensions , en éste se ha creado la clase _HotfolderEvents.cs en donde se ha realizado la suscripción de los eventos de Initialization y BeforeUploadDocument, para el resto de suscripciones se debe proceder igual.

Por otra parte el funcionamiento del plugin es el siguiente:

1. Colocar en la carpeta de subida del hotfolder el archivo que se desea crear en abox junto con un .csv ambos con el codigo del documento con el que se creara.

2. ir a la hoja de regla HotfolderX y buscar el archivo Xml de reglas, dentro de este en la regla tipo regex, asigna en el parámetro code la palabra name, esto para que al momento de que se cree el nuevo documento, este se le colocara el código que contiene el nombre y al momento de actualizar los metadatos con el plugin con el nombre del fichero podra conseguir su respectivo documento en abox.

3. Dentro de Abox, se debe configurar en la zona de Configuracion>Document>Extensiones Soportadas para que abox pueda recibir documento de tipo .csv, esto se realiza para que el hotfolder pueda procesar los .csv y no los rechace como formato no valido

Este plugin para coomonomeros tiene una funcionalidad especial que fueron descritas en el documento ESPECIF_INTEGRACIÓN_ELITE_II en el cual se muestran las diferentes funcionalidades mas detalladamente

  • TRANSFERENCIAS GRUPALES

genera un registro por cada tercero incluido en la operación de los formatos especificados en la regla para así de esta forma poderlos vincular al asociado correspondiente en la plataforma abox.

  • CREACIÓN DE SUB-EXPEDIENTES DE OPERACIONES ACTIVAS Y PASIVAS

se permite la creación de expedientes de operaciones activas y operaciones pasivas, para estas se requiere un tipo de regla exclusiva para la creación de estos expedientes:

**REGLA PARA LAS OPERACIONES ACTIVAS Y PASIVAS


<rule type="regex" documentType="OPER.ACT.S01" folder="ZASOC" mode="normal" action="newAnnex" documentseries="ACT" code="name">^997_[0-9]*</rule> 

documentType = tipo documental del documento del documento que inaugura el expediente.
folder = Folder donde se colocara el documento y expediente.
mode = modo de alta del documento.
documentseries = serie documental con la que se creara el expediente.
code = "name" = este campo es obligatorio en name para que pueda activarse el plugin y analizar los .csv

Aqui el tipo de operacion lo define la serie documental, por lo general siempre se utilizan dos reglas una para activas y otra para pasiva.

**FORMATO REQUERIDO.

NOMBRE FISICO
997_CEDULA ASOCIADO_TIPOSERVICIO.CSV
997_CEDULA ASOCIADO_TIPOSERVICIO.PDF

  • CREACIÓN DE EXPEDIENTES DE ASOCIADOS

crear expedientes de asociados basados en la información que los usuarios digitan en el sistema ELITE. Para ello, al igual que en los puntos anteriores se crearán archivos PDF y CSV.

**FORMATO REQUERIDO.
NOMBRE FÍSICO
999_CEDULA ASOCIADO.CSV
999_CEDULA ASOCIADO.PDF

**REGLA PARA LOS EXPEDIENTES DE ASOCIADO

<rule type="regex" documentType="ASO.HV" folder="ZASOC" mode="normal" action="newAnnex" documentseries="ASO" casefolderlocation="ASOC.2ACT" code="name">^999_[0-9]*</rule>

documentType = codigo del tipo documental del documento que inaugura el expediente de asociado.
folder = codigo del folder donde ira el expediente de asociado.
mode = modo de alta del documento.
documentseries = codigo de la serie documental del expediente de asociado.
casefolderlocation = codigo de las carpetas donde irán los expedientes de asociado. 
code = "name" = este campo es obligatorio en 'name' para que pueda activarse el plugin y analizar los .csv.

Contenido archivo .CSV

Este es un ejemplo del contenido del archivo .csv dependiendo de cada funcion.

TRANSFERENCIAS GRUPALES

023;00012444;;21/10/2015;;                                                                          
023;00012444;72344005;21/10/2015;;                                                                          
023;00012444;32670848;21/10/2015;;                                                                          
023;00012444;72291667;21/10/2015;;                                                                          
023;00012444;94409492;21/10/2015;;                                                                          
023;00012444;72328596;21/10/2015;;                                                                          
023;00012444;72175239;21/10/2015;;                                                                          
023;00012444;72175239;21/10/2015;;                                                                          
023;00012444;72175239;21/10/2015;;                                                                          
023;00012444;72146038;21/10/2015;;                                                                          
023;00012444;800230456;21/10/2015;;  

en el cual en la primera linea va el documento sin cedula(esta linea actualiza los metadatos del archivo creado por el hotfolder),en las demas lineas van los valores con los cuales se desean actualizar los metadatos y se creara un documento para cada cedula en la 3 posicion sin repetir, cada valor de metadato ocupara la misma posición que su código en la cabecera(Ver documento anexo), y en el caso de las fechas, tendran el formato dd/mm/yyyy.

OPERACIONES ACTIVAS

997;1042346413;PATERNOSTRO CARO;KAREN MILENA;1045674246;1047214284;266;5523214;55925000;1250;;

OPERACIONES PASIVAS
998;1042346413;PATERNOSTRO CARO;KAREN MILENA;278;9821001;90000;

CREACIÓN DE EXPEDIENTES DE ASOCIADOS

999;1140587587;Cantillo Camargo;Yuranis Andrea;03/02/1993;3042546986;01/11/2015;CRA 31 41 78;20/11/2015;;

Nombre ensamblado

Respecto al nombre del ensamblado, sólo hay que tener la precaución de que cada uno debe tener un nombre diferente al resto, ya que se cargan todas la librería existentes en la subcarpetas de extension, por lo que cada uno debe identificarse de manera única.
Para que se ejecute el plugin correspondiente al hotfolder que se está procesando es necesario realizar la siguiente comprobación:

     var assemblyName = Assembly.GetExecutingAssembly().Location;
     if (assemblyName.Contains(context.Configuration.Name.ToUpper()))
     {
        //Logica del plugin
     }

De esta manera sólo se ejecuta la lógica del plugin si estamos en el correspondiente hotfolder.

Generación de log de los plugins

También se ha incluido la forma de generar logs para los plugin de manera que sabremos qué es lo que va realizando el plugin en cada momento. Para ello debemos definir una variable log:

 private readonly ILog Log = log4net.LogManager.GetLogger("PLUGIN HOTFOLDER 1");

E incluir en el método Register:

 var logConfig = ConfigurationManager.AppSettings["logConfig"];

 XmlConfigurator.Configure(new FileInfo(logConfig));

En donde logConfig lo obtendremos del fichero de configuración general del hotfolder.
Y cuyo contenido de log.config, al cual se hace referencia en la variable logConfig contiene:

<log4net configSource="log4net.config">
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline"/>
      <!--<conversionPattern value="%date [%thread] %-5level - %message%newline" />-->
    </layout>
  </appender>
  <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
    </layout>
  </appender>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\Program Files (x86)\Adapting\HotFolder Abox\log-file.txt"/>
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="100KB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
 </appender> 
  <root>
    <level value="INFO"/>
    <appender-ref ref="RollingFileAppender"/>
    <!--<appender-ref ref="ConsoleAppender"/>-->
  </root>
  <logger name="NHibernate">
    <level value="ERROR" />
  </logger>

En este plugin se encuentran todos los ejemplos descritos.

Una vez realizada la lógica necesaria para nuestro plugin y compilada la solución, debemos depositar en la carpeta extensions/HotfolderX los ficheros de la compilación, así como configurar y depositar los ficheros de configuración necesarios.

Historico

Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)