2013-10-12 10 views
3

J'essaie d'obtenir tous les tags (nodeRefs et noms) d'alfresco en utilisant CMIS.Obtenir tous les tags Alfresco avec CMIS

La version Alfresco est 3.4. Avant de googler beaucoup, je ne trouve pas de bonne requête pour le faire? Aucun conseil?

+0

Voulez-vous obtenir les étiquettes sur un nœud donné, ou voulez-vous obtenir les nœuds qui représentent des étiquettes spécifiques? – Gagravarr

+0

Merci pour votre réponse Gagravarr. Je vais essayer de clarifier la question. J'ai besoin de montrer tous les tags sur un Node (dossier) récursivement, car dans mon intégration je dois créer un formulaire pour télécharger des fichiers et l'utilisateur veut ajouter des tags existants au document en ce moment. – Pymoo

+0

Est-ce que ce doit juste être les balises utilisées par ce dossier + les enfants, ou est-ce que les balises utilisées sur le site contenant le dossier seraient OK? (Seul Alfresco gère déjà la liste de ces derniers pour vous) – Gagravarr

Répondre

2

Je ne peux pas trouver une énorme quantité de détail écrit sur le Alfresco wiki sur la façon dont le service de marquage fonctionne, donc si quelqu'un a envie de prendre cela et mettre à jour le wiki qui pourrait être utile!

Il y a trois éléments clés à tagging:

  • Tag se Nœuds
  • nœuds avec le tag
  • Tag Scopes

nœuds Tag vivent sous un nœud spécial workspace://SpacesStore/tag:tag-root qui est en /cm:categoryRoot/cm:taggable. Les noeuds d'étiquette sont de type cm:category et cm:name est l'étiquette

Ensuite, vous souhaitez appliquer une étiquette à un noeud. S'il s'agit d'une nouvelle balise, elle doit d'abord être créée dans la racine du tag. S'il s'agit de la première balise d'un nœud, ajoutez l'aspect cm:taggable. Obtenez le noderef du noeud de tag, puis ajoutez-le à la propriété cm:taggable à valeurs multiples sur le noeud. (Le service de marquage fera tout cela pour vous si vous appelez addTag(NodeRef,String)

Enfin, divers nœuds de la hiérarchie parentale primaire du nœud que vous venez de marquer peuvent être définis comme une portée de point (par exemple le nœud de site). , les nœuds avec l'aspect cm:tagscope ont la propriété cm:tagScopeSummary mise à jour cm:tagScopeSummary contient la liste des balises utilisées par les enfants du nœud, ainsi que le nombre de fois que l'étiquette est utilisée pour vous aider à déterminer les balises les plus populaires ce morceau de l'arbre, ainsi que de travailler quelles étiquettes sont utilisées, et quand un tag n'est plus utilisé par l'arbre.Une fois, le TaggingService met à jour tout cela pour vous

AFAIK, les différentes propriétés de l'étiquette (cm:taggable et cm:tagScopeSummary) ne sont pas exposés via CMIS. Vous auriez besoin d'utiliser l'une des API Alfresco normales, soit à partir de l'API publique, ou quelque chose comme script/org/alfresco/collaboration/tagQuery.get qui vous permettra d'obtenir la liste des balises appliquées à un nœud. Je vous suggère de vous assurer que le nœud dont vous effectuez la requête est une portée de tag, donc c'est rapide et agréable. Le site est toujours un tag tag, c'est donc un bon point de départ.

+0

Bonne réponse. Je vous remercie. Je pense, corrigez-moi si je me trompe, le service de marquage addTag commence à partir de la version 4.0 de Liferay. n'est-ce pas? Donc, je ne peux pas le faire fonctionner seulement avec les API alfresco-opencmis-extension et chemistry-opencmis? Puis-je utiliser les services Web en option? Remarque: AVERTISSEMENT! Je suis un débutant avec Alfresco. – Pymoo

+0

Je ne sais rien à propos de liferay, désolé. Je crois que vous devrez faire un appel api non-CMIS REST pour obtenir les données que vous voulez, en appelant directement à Alfresco. – Gagravarr

+0

Excuse je voulais dire Alfresco 4.0 pas Liferay. Pour beaucoup de guerres ouvertes, désolé :-( – Pymoo

Questions connexes