我正在使用Drupal模块" CMIS API"和" CMIS VIEWS"我试图列出文件和子文件夹,但目前它只显示文件。我是通过使用CMIS Views模块附带的GUI来实现这一点的,因为我没有使用Alfresco的经验。我选择包含子文件夹和文档的文件夹,但只显示文档。
这是模块针对Alfresco运行的查询:
select d.*, t.* from cmis:document as d join cm:titled as t on d.cmis:objectid = t.cmis:objectid where in_folder(d, 'cf6bfb20-5499-46c4-92ea-abe39cf9e405')
如何修改此查询以显示文件夹?
非常感谢
答案 0 :(得分:2)
CMIS标准将cmis:document
和cmis:folder
实现为四个cmis:baseTypeId
对象中的两个。即使CMIS将JOIN作为SQL语句之一,但Alfresco实现目前不支持JOIN,除非作为支持方面的扩展。此扩展名是Alfresco特定的。
这意味着您无法实现以下目标:
SELECT * FROM cmis:folder INNER JOIN cmis:document etc
因为Alfresco不会识别该查询。 您可以做的是运行两个查询:
SELECT * FROM cmis:folder F WHERE IN_TREE(F, 'workspace://SpacesStore/cf6bfb20-5499-46c4-92ea-abe39cf9e405')
和
SELECT * FROM cmis:document F WHERE IN_TREE(F, 'workspace://SpacesStore/cf6bfb20-5499-46c4-92ea-abe39cf9e405')
其中workspace://SpacesStore/cf6bfb20-5499-46c4-92ea-abe39cf9e405
应该是父文件夹的nodeRef。
Here您可以访问alfresco cmis浏览器和网络应用(点击Web Scripts CMIS Browser链接,访问admin / admin,然后点击query
链接。这将有助于您使用并测试您的查询。
另一个解决方案是使用原生的露天cmis网页脚本(或自己开发): CMIS getFolderChildren。您可以调用Web服务并访问repo中所需的任何内容,而不是使用基于SQL的查询。
希望它有所帮助。
干杯