AnsweredAssumed Answered

Repartir documentos, Bulk import y Javascript(Regla de contenido)(Dilema '1000 reglas de contenido o solo una')

Question asked by jeferz on Aug 5, 2013
Latest reply on Aug 9, 2013 by jeferz
Muy Buenos días

Cuando llega un documento y es Digitalizado, lo ideal sería subir esa imagen a una Carpeta Única.

Esta Carpeta Única se encargaría de repartir estos documentos de forma automática a otras carpetas finales.

Esto los hace Alfresco muy bien gracias a sus reglas de contenido (Mover).

Pero que sucede si esta carpeta le reparte documentos a mas de 100 carpetas diferentes,(100!! reglas de contenido, Vaya tarea ardua que nos espera!).

El siguiente sencillo código intento darle solución a esta tarea tan especifica.


   //Leo dos propiedades del documento que acaba de ser importado por - Alfresco Bulk Filesystem Import     
   var subserie = document.properties["documento:subserie"];      //numero
   var nombre = document.properties["documento:nombresubserie"];  //nombre

   //En base a estas dos propiedades realizo una consulta para hallar la carpeta donde Moveré el archivo   

      var nodes = search.luceneSearch('@name:"' + nombre +'" AND @title:"'+ subserie +'"');

     //Defino dos variables
     var destino = "Documentacion Interna"; //nombre la carpeta Raíz donde irá el documento(así me aseguro de la ubicación final)
   var rutaDestino="";   //Variable en la cual pondré la ruta final

//Empiezo a recorrer todos los posibles ubicaciones encontradas
   for each(var node in nodes) {

//Obtengo la ruta de la carpeta encontrada y la divido por /
      var ruta = node.displayPath;
      var espacio = ruta.split('/');

//Como se que la carpeta "Documentación Interna" quedaría en el puesto 3 siempre, empiezo a filtrar
      if(destino == espacio[3]){

//Al saber que estoy en la ubicación correcta empiezo a armar de nuevo la ruta destino
         for(var i =3; i < espacio.length; i++){
            for(var f =2; f < espacio.length; f++){
               rutaDestino += "/" +  espacio[f];
               var i = "50";
            }
         }
      }
   }

//Al tener la ruta solo necesito encontrar su referencia y mover el archivo
   rutaDestino += "/" + nombre; //agrego el nombre de la carpeta, para completar la ruta
   var refDestino=companyhome.childByNamePath(rutaDestino);  //Encuentro la refenrencia

//Finalmente muevo el documento
   document.move(refDestino);


Si bien el anterior código funciona muy bien, solo funciona cuando primero subo los documentos a través de Bulk import (con la opción des-habilitar reglas), y luego le doy Re-aplicar reglas de contenido, lo cual le quita automatización al asunto.

lo cual nos haría pensar, que primero sube los documentos, ejecuta la regla de contenido (no encuentra nada) y finalmente sube las propiedades de los documentos. Pero al parecer no es así, ya que con ciertas carpetas si funciona al momento de subir los documentos, sin  necesidad "Re-aplicar" la regla de contenido (lo cual nos deja como principal sospechoso la Búsqueda en lucene de la carpeta).

Espero este código les sea de utilidad y espero ansioso sus comentarios en especial si conocen alguna forma de solucionar el inconveniente de Re-aplicar la regla de contenido, (tal vez ejecutar un Webservice que re-aplique las reglas de contenido de cierta carpeta o alguna forma de hacer que la regla de contenido espere determinado tiempo para ejecutarse)


Outcomes