¿Cómo obtener el target de una asociación?

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

¿Cómo obtener el target de una asociación?

Hola a todos,
tengo una duda, si tengo un noderef que se trata del target de una asociación, ¿cómo puedo obtener el source de esa asociación? Si hay alguna forma mediante freemarker me vendría mejor que con java, pero no estamos para pedir mucho, así que me conformare con cualquier solución que me podáis ofrecer.

Muchas gracias
1 Reply
ajv
Member II

Re: ¿Cómo obtener el target de una asociación?

Hola jjhinojosa!

Para lo que pides creo que hay solución directa tanto en javascript como en java:
- Desde java puedes hacerlo mediante el NodeService, ya que proporciona 2 métodos:
java.util.List    getSourceAssocs(NodeRef targetRef, QNamePattern qnamePattern)
          Fetches all associations to the given target where the associations' qualified names match the pattern provided.
java.util.List    getTargetAssocs(NodeRef sourceRef, QNamePattern qnamePattern)
          Fetches all associations from the given source where the associations' qualified names match the pattern provided.
En tu caso, haciendo uso de getSourceAssocs lo tendrías.
Te dejo la especificación completa del NodeService por si te sirve: http://dev.alfresco.com/resource/docs/java/repository/org/alfresco/service/cmr/repository/NodeServic...

- Desde javascript me parece (no lo he probado) que podrías hacer uso de lo siguiente:
assocs A readonly associative array (map) of the target associations of the node. Each named entry in the array contains an Array of the ScriptNode objects on the end of the association. For example: mynode.assocs["cm:translations"][0].
sourceAssocs    A readonly associative array (map) of the source associations to this node. Each named entry in the array contains an Array of the ScriptNode objects on the start of the association. For example: mynode.sourceAssocs["cm:translations"][0].

Si lo que quieres es hacer uso de esto en una plantilla freemarker, pues podrías hacer un sencillo web script que en el javascript ponga los sources en el model y que la plantilla los muestre.
Bueno, espero que te resulte de utilidad.  :wink:
Hasta pronto!