2013-10-12 139 views
3

我試圖從使用CMIS的戶外獲取所有標籤(nodeRefs和名稱)。獲取CMIS的所有Alfresco標籤

Alfresco版本是3.4。

之前谷歌上搜索了很多,我沒有找到任何好的查詢做到這一點?有什麼建議?

+0

你想獲取給定節點的標籤,還是你想獲得代表特定標籤的節點? – Gagravarr

+0

感謝您的回答Gagravarr。我會盡力澄清這個問題。我需要以遞歸方式顯示節點(文件夾)上的所有標籤,因爲在我的集成中,我必須製作上傳文件的表單,並且用戶想在此刻將現有標籤添加到文檔中。 – Pymoo

+0

是否必須是該文件夾+兒童使用的標籤,或者包含該文件夾的網站上使用的標籤是否正常? (只有Alfresco已經爲你保留了後者的列表) – Gagravarr

回答

2

我找不到關於Alfresco wiki上標記服務如何工作的大量細節,所以如果有人想到這個並更新wiki這可能會有所幫助!

有到tagging三個關鍵部分:

  • 標籤節點本身
  • 標籤節點
  • 標籤作用域

標籤節點住一個特殊的節點workspace://SpacesStore/tag:tag-root這是/cm:categoryRoot/cm:taggable下。標籤節點的類型是cm:category,而cm:name是標籤

接下來,您需要將標籤應用於節點。如果它是新標籤,則需要先在標籤根目錄中創建。如果這是節點上的第一個標籤,請添加cm:taggable方面。獲取標籤節點的noderef,然後將其添加到該節點上的多值cm:taggable屬性。 (如果你稱之爲addTag(NodeRef,String)

最後,各個節點了你剛纔所標記的節點的主父層次是可以(例如站點節點)定義爲標記範圍的標記服務會做這一切爲你。有了這個,與cm:tagscope方面的節點具有cm:tagScopeSummary屬性更新。cm:tagScopeSummary持有的由該節點的孩子們使用的標籤列表,使用的時間被用於標籤上的號碼。這可以讓你的工作什麼是最熱門的標籤是樹的那一點,以及制定什麼標籤被使用,以及什麼時候樹不再使用標籤。TaggingService同樣爲你更新所有這些信息。

AFAIK,各種標籤屬性( cm:taggablecm:tagScopeSummary)不通過CMIS暴露。您需要使用普通的Alfresco API之一,無論是從公共API,還是諸如script/org/alfresco/collaboration/tagQuery.get之類的東西,它們都會讓您獲得應用於節點的標籤列表。我建議你確保你查詢的節點是一個標記範圍,所以它很好,很快。網站總是一個標籤範圍,所以這是一個很好的開始。

+0

很好的答案。謝謝。 我認爲,糾正我,如果我錯了,標記服務addTag從4.0版本的Liferay開始。不是嗎? 所以我不能讓它只與alfresco-opencmis-extension和chemistry-opencmis API一起使用?我可以選擇使用Web服務嗎? 注意:警告!我是Alfresco的新手。 – Pymoo

+0

我對liferay一無所知,抱歉。我相信你需要做一個非CMIS REST api調用來獲得你想要的數據,直接調用到Alfresco。 – Gagravarr

+0

藉口我的意思是Alfresco 4.0不是Liferay。對於許多打開的戰爭,抱歉:-( – Pymoo