我正在使用Drupal模块"CMIS API"one_answers"CMIS VIEWS",我正在尝试列出文档和子文件夹,但目前只显示文档。我使用CMIS视图模块中包含的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')
如何修改此查询以同时显示文件夹?
非常感谢
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。
在这里,您可以访问露天cmis浏览器和web应用程序(单击web脚本cmis浏览器链接,使用admin/admin访问,然后单击query
链接。这将帮助您使用和测试查询。
另一种解决方案是通过以下方式使用本机alfresco cmis web脚本(或自行开发):CMIS getFolderChildren。您可以调用web服务并访问回购中所需的任何内容,而不是使用基于SQL的查询。
希望能有所帮助。
干杯