Proyecto

General

Perfil

Compactador Masivo de Documentos (CompressDocuments)

Información

Autor Stiven Villamizar
Sitio Web http://www.adapting.com
Repositorio source:
Código fuente https://svn-community.adapting.com/svn/community/Plugins/Jobs-America/trunk/src/CompressDocumentsJob
Versión Actual v1.0
Compatible con Abox 5.0.0 en adelante

Resumen

Este plugin permite compactar masivamente documentos especificados por el tipo documental y el tiempo de retención correspondiente al tipo documental dentro de un XML de configuración.

Se debe agregar la siguiente linea <add key="compressDataPath" value="~/Data/Compress/" /> para configurar la ruta en disco donde se guardarán los anexos del documento, incluyendo versiones y un xml que contiene información del documento, sus metadatos y logs del contenido.

El archivo de configuración se debe llamar "CompressJobConfig.xml" y debe estar dentro de la carpeta HTDOCS/CONFIG (Esta ruta se configura en el archivo Config/appSettings.config incluyendo la siguiente linea "<add key="CompressJobConfig.xml" value="Config/CompressJobConfig.xml" />").

<?xml version="1.0"?>
<compressContentsConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" active="true" quantity="5" total="17435">
  <requiredTimes>
    <requiredTime months="24">
      <documentTypes parentId="efcb38da-2b84-4e18-842e-9c7900ca7feb" recalculate="false">
        <documentType batchSize="30">05</documentType>
        <documentType batchSize="30">09</documentType>
      </documentTypes>
      <documentTypes parentId="RootDocumentType" recalculate="false">
        <documentType guid="d4c20238-d581-4d6b-aa57-aae7009f7e35" compressed="28" toCompress="false" batchSize="15">inv&amp;test</documentType>
      </documentTypes>
    </requiredTime>
  </requiredTimes>
</compressContentsConfig>

Con la anterior configuración se compactarán el numero de documentos definidos en el batchSize de los tipos documentales de código "05" y "09" y que hallan superado el tiempo de retención de 24 meses.

El compactador elimina automáticamente los documentos después de compactarlos, aunque los pasa a una nueva ruta configurable, p.ej. /data/compress/

El fichero "CompressJobConfig.xml" es utilizado para leer los tiempos de retención por tipo documental, también el aplicativo va escribiendo en él el progreso de las tareas de compactado masivo. Es posible incluir cientos de tipos documentales en este fichero. El sistema iterará por todo el fichero hasta que llegue al final. Los tipos documentales se identifican por código, pero el sistema los convierte automáticamente a un GUID para optimizar tiempos.

Nota: Si se detecta un tipo documental en el fichero XML sin GUID, lo más probable es que ese tipo no exista en la base de datos.

Los parámetros a tener en cuenta son:

  • guid: Id del tipo documental, si este parámetro no se coloca, el sistema lo coloca automáticamente al encontrar el tipo por el código.
  • months: Tiempo de retención en meses de los tipos documentales contenidos.
  • batchSize: Cantidad de documentos a compactar por tipo documental (Que superan el tiempo de retención). Si se coloca 0 no compactará este tipo documental.
  • quantity: Cantidad de tipos documentales a compactar cada 5 minutos (El Tiempo es definido al compilar el job).
  • parentId: Tipo documental padre del grupo de tipos de documentales dentro, este parámetro en conjunto con "recalculate=true" sirve para crear recursivamente todos los tipos hijos de último nivel del padre definido. Se debe tener en cuenta que los tipos no se repiten a menos que se creen manualmente.
  • recalculate: true/false, si el parámetro recalculate esta en true, recalcula los tipos documentales contenidos en el tag "documentTypes". Una vez recalculado lo coloca en false.
  • active: true/false, activa o desactiva el funcionamiento del job.

Otros parámetros de uso del Job que no necesitan parámetrización son:

  • total: Número total de documentos compactados por el job.
  • compressed: Número de documentos compactados por tipo.
  • toCompress: Toma el valor de "true" cuando el aplicativo compactará el lote para el tipo documental y "false" cuando ya se ha compactado el lote. Este parámetro es escrito por el mismo aplicativo, inicialmente toma el valor "true".
  • daychecked: Cuando no se encuentran documentos de un tipo documental que cumplan con las condiciones para ser compactados, se procede a colocar el día actual para que en el transcurso del día no se vuelva a revisar la condición hasta el día siguiente.

Existen 2 iJobs para este proceso:

  • PRUEBAS. Se trata de un iJob que es llamado cada 5 minutos entre los horarios definidos.
  • PRODUCTIVO. Se activará el programa de compactación, siempre y cuando el horario sea hábil. Por defecto, se han definido los siguientes horarios de compactación: * Lu-Vi, entre las 8pm - 6am * Sa-Do, las 24h.

El sistema va anotando el avance dentro del mismo fichero XML de configuración "CompressJobConfig.xml". Adicionalmente, el sistema escribe por cada lotes 1 fichero de log (dentro de una carpeta por fecha/ hora):

  • global : acumulado de compactados en el lote

La ruta de los logs es: C:\inetpub\wwwroot\abox\Data\Logs\Job\CompressDocuments

ES IMPORTANTE QUE LA COMPACTACIÓN SE REALICE SIEMPRE EN HORARIOS DE NO USO DEL APLICATIVO, PUES LOS BORRADOS Y LAS QUERIES MASIVAS PUEDEN CAUSAR BLOQUEOS EN LA BASE DE DATOS.

Nota: En los esquemas de metadatos asociados a los tipos documentales a compactar, se debe marcar la propiedad "Compresible" de los metadatos que se quieran agregar al documento compactado.

Notas de instalación

Descargue el código fuente del plugin y compílelo usando Visual Studio 2010. Luego dependiendo si lo va a integrar en una instalación de Abox o en un proyecto de extensión de Abox sigua las siguientes instrucciones.

En una instalación de Abox¶

Copiar la dll que genera el proyecto, en principio se debe llamar Adapting.CompressDocumentsJob.dll, en la carpeta /bin del sitio web donde esta Abox.

Incluya el proyecto en su proyecto para extender Abox, añada una referencia en Adapting.Web al proyecto que acaba de incluir.

Histórico

2019/12/17 - América: #20516 - Modificación del XML de configuración

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