Не работает коллекция запросов Simple Alfresco Share CMIS

#alfresco #alfresco-share #cmis

#на открытом воздухе #общий доступ на открытом воздухе #cmis

Вопрос:

У меня есть простой запрос CMIS, который я выполняю из папки коллекции. Цель состоит в том, чтобы получить два определенных документа, размещенных в двух разных папках.

 SELECT d.* FROM cmis:document d JOIN ws:webasset w ON w.cmis:objectId = d.cmis:objectId 
WHERE 
   (d.cmis:name = 'name1.html' AND in_folder(d,'${section:/root/folder1}'))
OR
   (d.cmis:name = 'name2.html' AND in_folder(d,'${section:/root/folder2}'))
  

Я также попытался:

 SELECT d.* FROM cmis:document d JOIN ws:webasset w ON w.cmis:objectId = d.cmis:objectId 
WHERE 
   (d.cmis:name = 'name1' OR d.cmis:name = 'name2.html') 
AND 
   (in_folder(d,'${section:/root/folder1}') OR in_folder(d,'${section:/root/folder2}'))
  

но они не извлекают никаких документов. Если я выполняю только (name1 в folder1), он правильно извлекает документ ‘name1’.
Я упускаю некоторые фундаментальные моменты из языка CMIS?

Связанный вопрос: раньше я выполнял этот тип запросов непосредственно из папки collection из-за наличия in_folder() или in_tree() с добавлением $section инструкций, которые не работают в браузере узлов. Есть ли способ выполнить это в браузере узла?

Ошибка опечатки ОБНОВЛЕНИЯ: в приведенных выше запросах отсутствовал квалификатор d , который является обязательным при наличии соединения в запросе. Просто ошибка, исходный запрос, который я выполняю, имеет квалификатор.

Ответ №1:

Вы должны использовать идентификатор объекта CMIS с in_folder . Он не принимает путь. Смотрите спецификацию на http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html

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

1. Но $ {section} должен возвращать идентификатор. Не так ли? Я успешно использую ее везде во всех своих динамических коллекциях. Однако я также попытался жестко запрограммировать идентификатор объекта, но он тоже не работает. Почему это работает нормально, когда я просматриваю только одну папку, используя $ {section} ?

2. Я не знаком с $section. Дополнительная информация?

3. Ну, это не указано, как должно быть, в официальном документе. Единственный разумный вариант, основанный также на многих коллекциях, которые у меня есть, заключается в том, что он возвращает идентификатор раздела.

4. См. Это: Настройка динамической коллекции ресурсов

5. Ага, вы используете Web Quick Start. В документах говорится, что если вы хотите ссылаться на /root/blog, вы должны использовать $section:/blog . Ваши пути включают /root . Вместо этого попробуйте $section:/folder1.