[Problème] Héritage des aspects en AlfrescoScript

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

[Problème] Héritage des aspects en AlfrescoScript

Bonjour,

J'ai un petit problème dans un de mes scripts : j'essaie de savoir si un document en particulier a un aspect "parent". Concrètement j'ai un aspect A dont découle plusieurs autres aspects B, C, D, … si dans un script je fais document.hasAspect["nom_Aspect_A"], cela me renvoie "false" même si le document a un aspect "enfant" (B, C, D, …).

Est-ce qu'il y aurait moyen de modifier le code pour que cette instruction teste aussi la présence d'un (des) aspect(s) "parent" ?

Merci d'avance,

Christophe
6 Replies
rguinot
Customer

Re: [Problème] Héritage des aspects en AlfrescoScript

Je ne crois pas que cela soit possible de la manière dont vous le décrivez.
Revenons en au besoin. Quel est en fait le besoin que vous avez traduit par des aspect hérités ?

Quelle API utilisez vous ? JavaScript ? Freemarker ? Web Scripts ou non ?

Vous pouvez également tester la présence d'une propriété de l'aspect parent, exemple :

<#if node.properties["namespace:prop"]??>
      …..something here…..
</#if>
Si cette propriété est héritée par plusieurs aspects, cela pourrait répondre à votre besoin.
christophes
Member II

Re: [Problème] Héritage des aspects en AlfrescoScript

Quelques précisions :
- J'ai besoin des aspects hérités car j'ai des métadonnées communes à tous mes aspects et que les redéfinir à chaque fois n'est pas une bonne solution.
- Je travaille actuellement en JavaScript, mais il se pourrait que j'aie besoin de cette fonctionnalité aussi en Java.
- Pour ce qui est de tester la présence d'une métadonnée de l'aspect parent (en JavaScript et/ou en Java), je ne vois pas comment faire mais ça pourrait être une solution.

Merci de ton intérêt.

Christophe
rguinot
Customer

Re: [Problème] Héritage des aspects en AlfrescoScript

Tout est expliqué ici : http://wiki.alfresco.com/wiki/JavaScript_API

Tu as accès à une map des métadonnées appelée properties.
Tu peux tester la valeur d'une propriété (ex : cm:name qui est alors une clé de la Map).
christophes
Member II

Re: [Problème] Héritage des aspects en AlfrescoScript

Je connais cette fonctionnalité mais si je teste sur une propriété de mon aspect "Parent" et que justement ce document n'a pas un de mes aspects et donc pas cette métadonnée, il va me renvoyer null. Il risque aussi de me renvoyer null si le document a l'aspect mais pas de valeur pour la métadonnée choisie. Donc comment faire la différence entre ces 2 null possibles ?

Christophe
rguinot
Customer

Re: [Problème] Héritage des aspects en AlfrescoScript

Tu dois pouvoir faire la différence avec le mécanisme donné ci dessus entre un cas ou la métadonnée est présente mais non valuée, et le cas ou la métadonnée n'existe pas car l'aspect n'est pas porté par le contenu. Voir le node browser pour la différence.
Tu peux également te servir du hash "aspects" qui te retourne l'ensemble des aspects portés un node.

Il ne s'agit pas de tester une valeur, mais la présence ou non d'une clé dans le hash.
christophes
Member II

Re: [Problème] Héritage des aspects en AlfrescoScript

Bon finalement, je me suis basé sur la présence ou non (valeur différente de null ou non) d'une métadonnée obligatoire définie dans l'aspect Parent.

Petite précision, l'instruction document.aspects renvoie bien la liste des aspects mais dans celle-ci on ne retrouve pas le nom des aspects "Parent" seulement ceux "Enfant".

Encore merci de ton aide,

Christophe