cancel
Showing results for 
Search instead for 
Did you mean: 

Problema Reglas y javascript al mover

emelbye
Champ on-the-rise
Champ on-the-rise
Hola,

Les comento el problema y si me pueden dar una mano con la resolución.
Tengo Un directorio de un proyecto que incluye otras carpetas. Aprobado, Incompleto.

Se procesan imágenes por Ephesoft, llegan perfecto con sus meta-datos y tipo de documento (definido como modelo) en Alfresco.

Quiero correr un script que verifique que exista al menos 2 tipos (por ejemplo tipo1 y tipo2)de documentos que son obligatorios. Si existen los mueva a la carpeta Aprobado, y si falta alguno de esos 2 tipos los mueva a la carpeta Incompleto.


Estructura de directorios:

|- MiEmpresa
  |—- Aprobado
    |——– 000312312
         |———-  tipo1.pdf   tipo2,pdf  tipo3.pdf  tipo4.pdf
    |——– 312312312
         |———- tipo1.pdf    tipo2.pdf

  |—- Incompleto
     |——-  543523342
          |——— tipo2.pdf   tipo3.pdf


La regla la aplico a MiEmpresa.
Cuando se crean tipo contenido
En el script obtengo el padre del documento y verifico que que exista tipo1.pdf y tipo2.pdf
Si no existe lo quiero mover a Incompleto, si estan esos 2 tipos lo mueve a Aprobado.

Aca el codigo concreto

   var carpeta = document;
   var doc;
   var i, j;
   var esta;
   var tipos = new Array();
   var faltan = new Array();
   var tiposDesc = new Array();
   
   tipos[0] = "tdk:Solicitud1";
   tipos[1] = "tdk:Solicitud2";
   tipos[2] = "tdk:Solicitud3";
   tipos[3] = "tdk:Solicitud4";
   tipos[4] = "tdk:Fotocopias";

   tiposDesc[0] = "Solicitud 1ra Hoja";
   tiposDesc[1] = "Solicitud 2da Hoja";
   tiposDesc[2] = "Solicitud 3ra Hoja";
   tiposDesc[3] = "Solicitud 4ta Hoja";
   tiposDesc[4] = "Fotocopia de DNI";
   
   for (j = 0; j < tipos.length; j++)
   {
      esta = false;
      for (i = 0; i < carpeta.children.length; i++)
      {
         doc = carpeta.children;
         if(doc.isSubType(tipos[j])){
            esta = true;
         }
      }
      if (!esta){
         faltan[faltan.length] = tipos[j];
      }
   }
   
   esta = false;
   for (i = 0; i < carpeta.children.length; i++)
   {
      doc = carpeta.children;
      if(doc.isSubType(tipos[4])){
         if (doc.properties["tdk:Fotocopias-TipoDNI"] == "SI"){
            esta = true;
         }   
      }
   }
   if (!esta){
      faltan[faltan.length] = tiposDesc[4];
   }
   
   var carpetaFinal;
   
   if (faltan.length == 0){
      carpetaFinal = space.childByNamePath("Sitios/empresa/documentLibrary/Empresa/Legajos_Revisar");
         logger.log("Estan todos");
   }
   else{
         carpetaFinal = space.childByNamePath("Sitios/eadicard/documentLibrary/Empresa/Legajos_Incompletos");
      carpeta.properties.description = "Faltan los siguientes tipos de documentos: " + faltan;
         logger.log("Faltan los siguientes tipos de documentos: " + faltan);
   }
   carpeta.move(carpetaFinal);
2 REPLIES 2

fboiero
Champ in-the-making
Champ in-the-making
Una solución es pasarle desde el ephesoft el numero de documentos de esa carpeta como una propiedad mas de cada documento(cantDoc). Eso lo haces desde el ScriptExport.java del ephesoft y en la regla o el wf de alfresco validas que la cantidad de documentos de la carpeta sea igual a la propiedad cantDoc.
Es una solución rebuscada pero gracias a "Fede" quedo funcionando con esto. 
Saludos

emelbye
Champ on-the-rise
Champ on-the-rise
que grande fede!!!