2016-10-17 6 views
0

Hier ist ein Codebeispiel:Wie Alfresco Daten erhalten Namen über CMIS auflisten?

Folder dataLists = (Folder) session.getObjectByPath("/sites/swsdp/dataLists"); 
     Joiner joiner = Joiner.on("\t"); 
     for (Folder cmisObject : (Iterable<Folder>) ((Iterable) dataLists.getChildren())) { 
      System.out.println(
        joiner.join(
          cmisObject.getId(), 
          cmisObject.getName(), 
          cmisObject.getDescription(), 
          cmisObject.getClass() 
        )); 
      System.out.println("=============================="); 
     } 

Die Ausgabe lautet:

a534356f-8dd6-4d9a-8ffb-dc1adb140c01 71824d77-9cd8-44c3-b3e4-dbca7e17dc49 Project issues class org.apache.chemistry.opencmis.client.runtime.FolderImpl 

Ok, kann Beschreibung über getDescription() Verfahren gedruckt werden, aber wie die Liste Namen? Warum habe ich eine UUID statt Issue Log? (Issue Log ist, wie Liste in Liste der Listen erschien).

+0

Sie suchen den Ordnernamen?!? –

+0

haben Sie versucht, eine Abfrage zu verwenden, um den gesamten Namen zu erhalten?!? –

Antwort

1

Zuerst sollten Sie sich ansehen, wie Datenlisten strukturiert sind, indem Sie mit dem Node Browser zu ihnen navigieren. Das wird viel Licht auf die Struktur des Objekts werfen.

Wenn Sie das tun, erfahren Sie, dass der Name einer Datenliste tatsächlich in der Eigenschaft cm: title gespeichert ist. Die Eigenschaft cm: title ist in einem Aspekt definiert, den CMIS als "sekundäre Typen" bezeichnet.

Wenn Sie mit Alfresco 4.2.x oder höher und das CMIS 1.1 Endpunkt, sollten Sie in der Lage sein, den cm zu greifen: Titel Eigenschaft mit Ihrem Code verwenden:

cmisObject.getPropertyValue("cm:title") 

Auch, wenn Sie würde gehen Sie eher die Query-Route, erkennen Sie, dass der Typ, den Sie abfragen wollen, nicht cm: Ordner ist, sondern dl: dataList. Sie können einen Join mit dem betitelten Aspekt cm: ausführen, um die Titelliegenschaft der Datenliste auf diese Weise zu erhalten:

Verwandte Themen