Как получить имя списка данных на открытом воздухе через CMIS?

#java #alfresco

#java #alfresco

Вопрос:

Вот пример кода:

 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("==============================");
        }
 

Вывод:

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

Хорошо, описание можно распечатать с помощью getDescription() метода, но как получить имя списка? Почему я получил UUID вместо Issue Log ? ( Issue Log так список появился в списке списков).

Комментарии:

1. вы ищете имя папки ?!?

2. вы пытались использовать запрос, чтобы получить все имя ?!?

Ответ №1:

Во-первых, вы должны посмотреть, как структурированы списки данных, перейдя к ним с помощью браузера узлов. Это прольет много света на структуру объекта.

Если вы это сделаете, вы узнаете, что имя списка данных фактически хранится в свойстве cm:title . Свойство cm:title определено в аспекте, который CMIS называет «вторичными типами».

Если вы используете Alfresco 4.2.x или выше и конечную точку CMIS 1.1, вы должны иметь возможность получить свойство cm: title с помощью вашего кода, используя:

 cmisObject.getPropertyValue("cm:title")
 

Кроме того, если вы предпочитаете идти по маршруту запроса, поймите, что тип, который вы хотите запросить, — это не cm:folder, а скорее dl: dataList. Вы можете выполнить объединение с аспектом cm:titled, чтобы получить свойство заголовка списка данных таким образом, например:

 SELECT t.cm:title FROM dl:dataList as d join cm:titled as t on d.cmis:objectId = t.cmis:objectId