Añadir aspecto effectivity a todos los documentos entrantes en Alfresco

Muchas veces nos vemos con la necesidad de aplicar el aspecto Effectivity (que marca la Validez de un documento) a los documentos que metemos en determinados espacios en Alfresco. Por ejemplo contratos o licencias que suelen tener un periodo de Validez establecido.

Para ello necesitamos hace 2 cosas.

  • Crear una regla sobre el espacio que queramos que ejecute el script que crearemos a continuación. Esta regla deberá de ejecutarse sobre todos los documentos entrantes y aplicará a subespacios.
  • Y en segundo lugar, crear un script que aplique el aspecto effectivity y le establezca como fecha de inicio y fecha de finalización las que designemos (para este ejemplo usaremos fechaInicial=fecha de fecha de creación y fechafinal=fecha de creación mas 365 días).

El script sería el siguiente:

/* Script que anade el aspecto effectivity al documento sobre el que se ejecuta
 Ademas establece el campo from a la fecha de creacion y la fecha de caducidad
del documento (cm:to) a 3 dias posterior a la de creacion
*/
fechaInicial = new Date();
fechaInicial = document.properties["cm:created"] ;
fechaCaducidad = new Date();
fechaCaducidad.setDate(fechaInicial.getDate() + 3);

props = new Array(1);
props["cm:from"] = fechaInicial;
props["cm:to"] =  fechaCaducidad;

if ( document.addAspect("cm:effectivity", props) == null){
     if (isLoggingEnabled() ){
            logger.log("No se ha podido establecer el aspecto effectivity a " + document.name );
      }
}

Con esto logramos que se le apliquen estas fechas, se puede realizar un cron que compruebe la fecha de finalización y nos notifique sobre el vencimiento de un documento.