Busqueda dentro de un espacio sobre una propiedad

cancel
Showing results for 
Search instead for 
Did you mean: 
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

También me he dado cuenta, de que en el espacio de trabajo de alfreco, cuando entras a un espacio muestra su contenido. Yo hasta ahora navegaba a través del arbol de la parte izquierda, pero los espacios con el prefijo ajd no se muestran en el espacio de trabajo (si en el árbol), pero creando el espacio con el asistente avanzado y creándomelo (aún no sé porqué) con el prefijo cm si que me lo muestra tanto en el árbol como como contenido de otro espacio en el espacio de trabajo…

A ver si da alguna pista.
ajv
Member II

Re: Busqueda dentro de un espacio sobre una propiedad

Entonces es exactamente lo que me pasó a mi con la prueba que realicé hace unos días (creo que lo comenté por algun post anterior).
No sé si recuerdas que creé un tipo de contenido que heredaba de folder, y lo que hice fue crear una espacio de mi tipo usando el asistente y la búsqueda me fue bien…Me fijé que el path iba con cm: en lugar de mi namespace (sin embargo, tú tienes todo tu path con tus namespaces).
Por tanto, parece ser que alfresco (en su wizard o en el procedimiento de creación que sea) por debajo realiza unas acciones respecto a los path's que permiten posteriormente recuperar la información.
Como decías, empleaste un proceso (un java o algo) para realizar esta creación, basándote en el tutorial de Jeff…Yo revisaría ese script o procedimiento, a ver si le falta algún detalle.

Y si quieres que le echemos un vistazo a ese proceso, ya sabes  :wink:
Hasta luego!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Estoy venga a mirar el código, comparándolo con el de Jeff Potts y no veo nada raro. He de decir que el código no lo he hecho yo por lo que se me puede escapar algo…

Os pongo parte del código va?

…Mode.java

package ….;

import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;

public interface ModeloAJD {
    public static final String NAMESPACE_MODELO_CONTENIDO_AJD  = "http://www.miempresa.es/model/content/ajd/1.0";
   
    /*************** TIPOS ***************/
    public static final String TYPE_AJD_ESPACIOAJD = "espacioajd";
   ….
    /*************** ASPECTOS ***************/
   ….
}

Ahora viene el .java que crea la estructura de espacios:

package ….;

import org.alfresco.webservice.repository.UpdateResult;
import org.alfresco.webservice.types.CML;
import org.alfresco.webservice.types.CMLAddAspect;
import org.alfresco.webservice.types.CMLCreate;
import org.alfresco.webservice.types.NamedValue;
import org.alfresco.webservice.types.ParentReference;
import org.alfresco.webservice.types.Reference;
import org.alfresco.webservice.types.Store;
import org.alfresco.webservice.util.AuthenticationUtils;
import org.alfresco.webservice.util.Constants;
import org.alfresco.webservice.util.Utils;
import org.alfresco.webservice.util.WebServiceFactory;
import  org.alfresco.webservice.types.Predicate;

import ….ModeloAJD;

import junit.framework.Assert;
/**
* Clase que crea la jerarquía de tipos de espacio para AJD
*/

public class AJDEstructuraEspacios extends AJDBase{
       private static final String USAGE = "java AJDEstructuraEspacios <carpeta raiz> <nombre del contenido>";
      
       private String contentType;
       private String contentName;

      public static void main(String[] args) throws Exception {
          //if (args.length != 5) doUsage(AJDEstructuraEspacios.USAGE);
          AJDEstructuraEspacios scdc = new AJDEstructuraEspacios();
          scdc.setUser("admin");
          scdc.setPassword("admin");
          
          scdc.setRootFolder("");

          try{
             // Inicio la sesion
              AuthenticationUtils.startSession(scdc.getUser(), scdc.getPassword());
             Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
              
             ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home", Constants.ASSOC_CONTAINS, null);
               Reference carpetaRaizAJD = scdc.creaCarpeta(storeRef, companyHomeParent, "Asesoría Jurídica", ModeloAJD.TYPE_AJD_ESPACIOAJD, false, "");
             Assert.assertNotNull(carpetaRaizAJD);

             Reference carpetaProcedimientos = scdc.creaCarpeta(storeRef, damePadreRef(storeRef,carpetaRaizAJD), "Procedimientos", ModeloAJD.TYPE_AJD_PROCEDIMIENTOS, false, "");
             Assert.assertNotNull(carpetaProcedimientos);
                
                Reference carpetaAdmtvos = scdc.creaCarpeta(storeRef, damePadreRef(storeRef,carpetaProcedimientos), "Administrativos", ModeloAJD.TYPE_AJD_PROCSADMINISTRATIVOS, false, "");
               Assert.assertNotNull(carpetaAdmtvos);
                  Reference carpetaAGPD = scdc.creaCarpeta(storeRef, damePadreRef(storeRef,carpetaAdmtvos), "Protección de datos", ModeloAJD.TYPE_AJD_AGPD, false, ModeloAJD.ASPECT_AJD_RESUMIBLE);
                  Assert.assertNotNull(carpetaAGPD);
                
          } catch(Throwable e) {
               System.out.println(e.toString());
               e.printStackTrace();
           } finally {
               // End the session
              System.out.println("Estructura creada.");
               AuthenticationUtils.endSession();
               System.exit(0);
           }/**/
       }

      private static ParentReference damePadreRef(Store almacen,Reference carpetaRef){
         return new ParentReference(almacen,carpetaRef.getUuid(),carpetaRef.getPath(),Constants.ASSOC_CONTAINS,null);
      }

      
      private Reference creaCarpeta(Store almacen, ParentReference padre, String nombreCarpeta, String tipoEspacio, Boolean heredaDelPadre, String aspecto) throws Exception
      {
         padre.setChildName(Constants.createQNameString(ModeloAJD.NAMESPACE_MODELO_CONTENIDO_AJD, nombreCarpeta));
          
         
           NamedValue nombreProp = Utils.createNamedValue(Constants.PROP_NAME, nombreCarpeta);
          
            NamedValue[] propiedades = new NamedValue[] {nombreProp};

            CMLCreate create = new CMLCreate(
                     "ref1",
                     padre,
                     null,
                     null,
                     null,
                     Constants.createQNameString(ModeloAJD.NAMESPACE_MODELO_CONTENIDO_AJD, tipoEspacio),
                     propiedades);
           
           
            CML cml = new CML();
           cml.setCreate(new CMLCreate[]{create});
          
           if (aspecto.length() > 0){
               CMLAddAspect cmlAddAspect = new CMLAddAspect(Constants.createQNameString(ModeloAJD.NAMESPACE_MODELO_CONTENIDO_AJD, aspecto), null, null, "ref1");
               cml.setAddAspect(new CMLAddAspect[] {cmlAddAspect});
            }
          
           UpdateResult[] results = WebServiceFactory.getRepositoryService().update(cml);
           if (heredaDelPadre){ //si queremos que el espacio NO herede permisos de su padre
              Predicate p = new Predicate(new Reference[]{results[0].getDestination()}, almacen, null);
           }
         
           return results[0].getDestination();    
      }
      
       public String getContentName() {
         return contentName;
      }

      public void setContentName(String contentName) {
         this.contentName = contentName;
      }

      public String getContentType() {
         return contentType;
      }

      public void setContentType(String contentType) {
         this.contentType = contentType;
      }

}


Más o menos ese sería el código…

Gracias por todo!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

¿Alguna idea?
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Mirando y mirando y mirando los archivos he visto que el archivo de extension de modelo (en el ejemplo de Jeff Potts sería el scModel.xml) tiene la siguiente cabecera…

<?xml version="1.0" encoding="ISO-8859-1"?>

La codificación no es UTF-8, ¿podría tener algo que ver?
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

¿Nadie puede guiarme?
ajv
Member II

Re: Busqueda dentro de un espacio sobre una propiedad

Hola fstnboy,

No he tenido tiempo de mirarme el procedimiento que adjuntaste, porque estoy preparandome unos exámenes chungos…
Pero no lo tengo como olvidado  Smiley Very Happy , en cuanto tenga un ratillo, le echo un vistazo

Hasta pronto!!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Gracias!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Bueno yo sigo soltando lo que veo, por si acaso alguien ve la luz…

Mirando la base de datos, exactamente la tabla ALF_NODE_ASSOC, no he encontrado ningún registro que tenga ni en la columna SOURCE_NODE_ID ni en la columna TARGET_NODE_ID el NODE_ID del primer nodo del árbol creado con la aplicación… Pero con el Node Browser puedo verlo, y acceder a él desde el company_home…
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

¿o en qué tablas debería mirar en la BBDD? para ver la relación entre los nodos…