#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.