Problemas al renombrar una carpeta

cancel
Showing results for 
Search instead for 
Did you mean: 
sances1704
Member II

Problemas al renombrar una carpeta

Buenas, llevo poco tiempo utilizando alfresco y en este foro he encontrado mucha ayuda que me ha venido muy bien en mi desarrollo, pero ahora no encuentro la solución a este nuevo problema que me ha surgido. La cuestion es que yo tengo que hacer el renombrado de una de mis carpetas via WebService, y el problema es que una vez que realizo el renombrado no puedo acceder a las subcarpetas de dicha carpeta. Y necesito acceder a ellas dado que una vez renombrada necesito añadir nuevos documentos.
el codigo que tengo es el siguiente:
   //creo la nueva carpeta
                companyHomeParent = setCompanyHomeTiWorksFolder(storeRef, pathFolder,numeracion,documento.getId());
                String queryString = "+PATH:\"" + pathFolder+ "/tw:" + nombreCarpeta +"//*\""
      + "+TYPE:\""+Constants.TYPE_FOLDER+"\"";
               //recupero los hijos de la antigua carpeta
      List<Content> lista = getQueryResults(queryString, storeRef);
      if(lista.size()>0){   
         int tama = lista.size();
       Reference[] ref =new Reference[tama];
       for(int i=0; i<tama; i++)
          ref[i] = lista.get(i).getNode();
      Predicate predicate =new Predicate(ref, storeRef, null);
                //copio los hijos en la nueva carpeta
         CMLCopy ccopy = new CMLCopy(companyHomeParent, null, null, null, predicate, null, true);
          // Construimos el bloque CML
           CML cml = new CML();
           cml.setCopy(new CMLCopy[] {ccopy});
           // Ejecutamos el bloque CML
           WebServiceFactory.getRepositoryService().update(cml);
         
      }
          
      gest.borraCarpetaAlfresco(nombreCarpeta);

El problema llega cuando tengo que acceder a la carpeta hija para añadir mis nuevos documentos accedo a la carpeta de la siguiente manera:
       ParentReference companyHomeParent = null;
      try {
         //Therefore a reference to the maybe not existent space is required
         System.out.println("Entering pathFolder " + pathFolder);
         System.out.println("Entering space " + nombreCarpeta);
         Reference space = new Reference(storeRef, null, pathFolder+ "/cm:" + nombreCarpeta);
         WebServiceFactory.getRepositoryService().get(new Predicate(new Reference[]{space}, storeRef, null));
         System.out.println("inicio UtilsAlfresco:getCompanyHomeParentFolder–>Recupera una carpeta que ya existe");
         
         //Recupera una carpeta que ya existe
         companyHomeParent = new ParentReference(storeRef, null, pathFolder+ "/cm:" + nombreCarpeta, Constants.ASSOC_CONTAINS, nombreCarpeta);
   

      }catch (Exception e){
                       //si la carpeta no existe la creo como nueva.
         companyHomeParent = getCompanyHomeParentNewFolder(storeRef,nombreCarpeta, pathFolder);
      }

cuando llega la ejecucion a este ultimo metodo, el problea que obtengo es que no encuentra la carpeta y cuando intento crearla como nueva me dice que ya existe. Desde el cliente web de alfresco la carpeta existe y está correctamente bajo la nueva carpeta con su nuevo nombre. Pero no consigo acceder a ella.

¿Alguien sabe cual puede ser mi error?
Muchas gracias de antemano por ayudarme.
1 Reply
cristinamr
Advanced

Re: Problemas al renombrar una carpeta

Ummm… Hace no mucho tuve que montar una consulta como la tuya para la búsqueda de una carpeta, pero en mi caso fue por nombre y tipo de nodo.
Para probar que la consulta iba bien ve al panel de administrador, una vez allí si pulsa en explorador de nodos, selecciona la penúltima opción (workspace://SpacesStore), en el combo selecciona "selectnodes" y ahí pega tu consulta.
En mi caso probé con: descendant::*[@cm:name='prueba' and subtypeOf('cm:folder')] y me devolvió  resultado, por lo que estaba correcto. También probé solo con el nombre e iba correctamente.
Traduccido al código iba así: var nodo= userhome.childrenByXPath("*[@cm:name='"+loc+"']/*"); <– Solo por el nombre
Y ahí ya tenía devuleto el nodo.

Prueba a ver si te funciona a tí también Smiley Wink
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc