Modificación de metadatos de un espacio mediante javascript

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

Modificación de metadatos de un espacio mediante javascript

Hola,
No llevo mucho tiempo con Alfresco, y aunque me voy apañando tengo una duda que no sé como resolver. Os explico…
Estoy haciendo un proyecto donde los documentos van a ser una agrupación de documentos no definida (varios word, varios pdf… lo que quieran). Tomé la decisión de crear un espacio que contenga los documentos que el usuario quiera añadir. Una vez incluídos dentro del espacio hay una fase de aprobación que tengo solucionada. El espacio se va moviendo mediante reglas de aprobación a diferentes espacios, es decir trato el espacio (con un metadatos creados al efecto) como "un documento". Lo que quiero es, mediante javascript modificar los metadatos de dicho espacio según va pasando las fases de aprobación (fechas, estado…). He conseguido que funcione (afecta al espacio donde la regla es local), pero lo que quiero hacer es que funcione en los subespacios, y a pesar de que defino asi la regla no funciona. ¿Alguien me puede decir como forzar a que se ejecute en los subespacios? Es un poco lioso, espero haberlo explicado bien.
Muchas gracias
7 Replies
pjcaracuel_2349
Active Member II

Re: Modificación de metadatos de un espacio mediante javascript

Pues yo lo haria con una regla asociada al espacio que ejecutara un js.

Via js, puedes recorrer todos los subespacios que cuelgan del principal e ir modificando sus metadatos.

Saludos
volasolo_9270
Member II

Re: Modificación de metadatos de un espacio mediante javascript

Hola,
Muchas gracias por responder tan rápido.
Había contemplado esa posibilidad, pero no sé muy bien como hacerlo. No sé el nombre exacto que el espacio va a tener y lo único que he encontrado es esto childByNamePath("nombre_espacio"). ¿Hay una forma más genérica de conseguirlo?

Gracias de nuevo.
pjcaracuel_2349
Active Member II

Re: Modificación de metadatos de un espacio mediante javascript

Pues se me ocurre que al ejecutarse en una espacio determainado, el objecto space es el espacio donde estas, y para buscar los descendientes bastaria con iterar haciendo uso de la propiedad children y comprobando si es un espacio para cambiarles las propiedades.
Entiendo que deberia ser algo asi
for (i in space.children)
Comprobar si es espacio y si si…. asignar nuevos metadatos
En los ejemplos de la API de javascript tienes ejemplos.

Saludos
volasolo_9270
Member II

Re: Modificación de metadatos de un espacio mediante javascript

Gracias, lo pruebo y te cuento
volasolo_9270
Member II

Re: Modificación de metadatos de un espacio mediante javascript

Hola,
Bueno… he conseguido que recorra los espacios hijos, pero no consigo que me cambie las propiedades. Paso el código por si alguien me puede ayudar. No casca, pero me temo que la sintaxis no es la correcta. He estado mirando por aqui por el foro y no veo código que se asemeje. ¿Me podéis echar un cable? Gracias por anticipado.


for (i=1;i<space.children.length;i++){
    var nodo = space.children;
    var nome=space.children.name;
   
    if(nodo){
       nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
       space.save();
         }
   space.save();   
}
pjcaracuel_2349
Active Member II

Re: Modificación de metadatos de un espacio mediante javascript

A ver site podemos ayudar:

for (i=1;i<space.children.length;i++){
var nodo = space.children; Aqui cojes el nodo hijo
var nome=space.children.name;    ESto para que???

if(!nodo.isDocument ){     Si el nodo no es un documento entonces sera un espacio.Pero revisa si el ! se lo traga
nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
space.save();
}
space.save(); Sobraria ya
}
volasolo_9270
Member II

Re: Modificación de metadatos de un espacio mediante javascript

Por fin!! lo conseguí!!
Lo que pasaba es que no estaba haciendo correctamente el "save". Lo estaba haciendo a nivel del espacio padre (el que ejecuta la regla) y debía de hacerlo a nivel del hijo (el que hace dispararse la regla)

Muchísimas gracias por tu ayuda.