Establecer propiedades al mover documentos a espacios con CI

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

Re: Establecer propiedades al mover documentos a espacios con CI

Buenas,

Puedes poner el script que estas ejecutando? En un principio solo se le deberian aplicar esos metadatos si el tipo de documento que estas subiendo es el que tu has personalizado, para el tipo por defecto, no estan definidos los atributos cliente y asunto.

Saludos
alex888
Member II

Re: Establecer propiedades al mover documentos a espacios con CI

El script realmente son esas dos líneas, más salvar las propioedades del documento:


document.properties["my:asunto"] = documento.parent.name;
document.properties["my:cliente"] = documento.parent.parent.name;
document.save();

… solo se le deberian aplicar esos metadatos si el tipo de documento que estas subiendo es el que tu has personalizado, para el tipo por defecto, no estan definidos los atributos cliente y asunto.

Saludos

Ese es precisamente el tema. Si yo subo el contenido (momento en el que se ejecuta la acción y, por tanto el script), y después elijo como tipo de contenido mi tipo y le doy valor a cliente y a asunto, ¿no estaré sobreescribiendo los valores?. Por otro lado, si el tipo de contenido que elijo es el standar, como tú bien dices, no aparecen siquiera cliente y asunto en la hoja de propiedades …
pjcaracuel_2349
Active Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Buenas,

Correcto ahora lo capto, lo que querias decir. Efectivamente si ejecutas la regla, te sobreescribira cualquier valor que pongas en dichos campos por los asignados en la regla (ya que esta se ejecuta al final del todo).

Lo unico que se me ocurre es que compruebas antes de realizar la asignacion si esas dos propiedades estan ya cumplimentadas.

Saludos
alex888
Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Jejjejeje, me he explicado mal. Tal y como dices tu es como quiero que ocurra!!!. Yo pensaba que era al revés, que la regla se ejecutaba al principio, antes de elegir el modelo de contenido (lo digo porque tengo puesto que salgan trazas en la ventana del Tomcat y creo haber visto que se ejecutaban antes), pero si me dices tu que es así mejor, porque lo que quiero es forzar esas dos propiedades con lo que se asigne en la regla. Es decir que si luego el usuario elige otro client y otro asunto, que prevalezcan los de la regla.

Igual lo expliqué mal.

En serio Pedro, te estoy muy agradecido por las molestias. A ver si sale y te cuento lo que era …
pjcaracuel_2349
Active Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Buenas,

De todas formas se me olvido comentarte que la regla la puedes aplicar para que solo se ejecute en el caso de que el documento que subes es de tu tipo personalizado.

Saludos
alex888
Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Hola Pedro,

soy incapaz de conseguir que funcione. Lo probé ayer y creo (por favor, vuélveme a corregir si me equivoco) que la regla asociada a un evento inbound se ejecuta justo después de que subas el fichero, pero antes de que le asignes los metadatos (repito, igual me equivoco).  Por otro lado me da un poco lo mismo porque para lo que me interesa es a la hora de añadir contenido vía CIFS (con lo que realmente no metes ningún metadato a mano). El caso es que cuando miro las propiedades del documento tras ejecutarse el script (veo las trazas que he puesto en el log), ninguna de las propiedades añadidas parece. Yo me pregunto … ¿no habría que decirle al document de alguna forma que el tipo de metadatos asociado sería el tipo que yo he definido en mi modelo personalizado?. No se, algo del tipo:


document.setContenType["my:type"];??

Gracias de nuevo …

Un saludo.
pjcaracuel_2349
Active Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Buenas Alex,

Por las pruebas que yo he realizado, la ejecucion de la regla se produce una vez que le has asignado las propiedades (cierto es que via CIF no lo he probado), siempre lo hago via webclient. Para solucionar eso tienes dos vias. O definir una regla previa a la de asignar metadatos que convierta todos los documentos que subas al tipo que tu has definido o bien probar si te funciona lo siguiente:

document.type=Fully qualified QName type of the node (Literal de la wiki)

Saludos
alex888
Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Hola Pedro,

el "node" al que hace referencia imagino que será el nodo correspondiente al modelo de contenido que definí yo, ¿no?. ¿Con qualified name se refiere a la ruta completa donde se encuentra?, yo lo tengo en alfresco/extensions …

Mil gracias de nuevo por tu tiempo.

Un saludo.
pjcaracuel_2349
Active Member II

Re: Establecer propiedades al mover documentos a espacios con CI

No a la ruta donde se encuentra, sino a como lo has definido en tu modelo.

Ejem.

{http://www.someco.com/model/content/1.0}whitepaper

Saludos
alex888
Member II

Re: Establecer propiedades al mover documentos a espacios con CI

Hola,

por fín conseguí solucionarlo, pongo el codigo para la posteridad:

var result = document.specializeType("{http://www.someco.com/model/content/1.0}mytype");
document.properties["my:asunto"] = documento.parent.name;
document.properties["my:cliente"] = documento.parent.parent.name;
document.save();

{http://www.someco.com/model/content/1.0} es lo que está definido en los namespaces del xml de configuración del modelo, es decir:


   <namespaces>
      <namespace uri="http://www.someco.com/model/content/1.0" prefix="my"/>
   </namespaces>

y mytype es el nombre que se le haya puesto al tipo dentro de ese mismo fichero.

Solucionado esto, sigo teniendo un problema. Vía CIFS, todo funciona perfecto. Pero si el documento es añadido mediante "add content" en el interfaz de alfresco, la regla se activa después de establecer las propiedades generales del documento (Name, Type (content por defecto), encoding, COntent Type), pero ANTES de establecer las propiedades particulares de Content Type o del tipo particular definido como es mi caso. Ocurre que si se desactiva la casilla donde se lee "Modify all properties when this page closes", entonces el documento tiene las propiedades que yo he definido en el script, en caso contrario se sobreescriben, ya que al usuario le sale la Hoja de Propiedades de Content Type o del tipo particular elegido.

Por tanto, una solución para mí sería que esta regla SOLO se ejecutara en caso de que el documento se suba vía CIFS, ¿hay alguna forma de detectarlo en el script?. O en cualquier caso, Pedro, ¿se te ocurre otra forma de hacerlo?.

Un saludo.
Alex.