如何在 Alfresco 中获取自定义值 属性 的文档列表
How to get list of documents with defined value of custom property in Alfresco
我们的项目使用 Alfresco Enterprise 4.2.2.5 平台。
我们的用户在 Alfresco 文件夹“../contracts_def”中创建合同,然后开始审批流程。
例如,文件夹 "contracts_def" 具有以下结构:
Contracts_def (Folder)
|
|---- contract_name1 (Folder)
| |--- contract_name1.docx (main document)
| |--- ext_file1.docx (document)
|
|---- contract_name2 (Folder)
|--- contract_name2.docx (main document)
|--- ext_file2.docx (document)
每个主文档都有一组属性,包括批准状态。
在 Alfresco Node 浏览器中 属性 的全名是 {httр://www.mytest.ru/model/test/contract/1.0}status.
我想获取文件夹 "contracts_def" 中状态为 "on-sign" 的文档列表。
我在 Java 脚本控制台中为 运行 编写了简单的脚本:
var rs = search.query
({ query:
"SELECT * FROM cmis:document WHERE CONTAINS('PATH:\"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*\"')",
language:"cmis-alfresco" });
for (var r in rs)
{ logger.log(rs[r].parent.name + "/" + rs[r].name + "\t" + rs[r].properties.status); }
有3个问题:
1) 脚本有效,但我得到的不是文档状态 "NULL"。我的理解是,脚本不会 return 自定义 属性 文档 - {httр://www.mytest.ru/model/test/contract/1.0}status,但我只能获得 none-自定义属性,例如 {httр://www.alfresco.org/model/content/1.0}creator。
2) 我想获取只有状态 "on-sign" 的文档列表,但脚本将 return 所有指定的属性而不进行过滤。
如何根据我的要求更改代码?
3) 我可以使用 Alfresco 的内置网络脚本获取此信息吗?
提前致谢。
如果您是 运行 服务器端 JavaScript 控制台中的代码,它可以完全访问 JavaScript [,则不清楚为什么要为此使用 CMIS =23=] 和本机搜索。
与使用 JavaScript 和 CMIS 相比,您可能会发现首先使用管理控制台中可用的节点浏览器让查询正常工作会更容易。
转到管理控制台,然后转到节点浏览器,并将其放入搜索框中:
PATH:"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*" =test:status:"on-sign"
确保选择 "fts-alfresco"。
现在您有了一个有效的查询,您可以返回 JS 控制台并在您的 search.query 调用中使用它。
我们的项目使用 Alfresco Enterprise 4.2.2.5 平台。
我们的用户在 Alfresco 文件夹“../contracts_def”中创建合同,然后开始审批流程。 例如,文件夹 "contracts_def" 具有以下结构:
Contracts_def (Folder)
|
|---- contract_name1 (Folder)
| |--- contract_name1.docx (main document)
| |--- ext_file1.docx (document)
|
|---- contract_name2 (Folder)
|--- contract_name2.docx (main document)
|--- ext_file2.docx (document)
每个主文档都有一组属性,包括批准状态。
在 Alfresco Node 浏览器中 属性 的全名是 {httр://www.mytest.ru/model/test/contract/1.0}status.
我想获取文件夹 "contracts_def" 中状态为 "on-sign" 的文档列表。
我在 Java 脚本控制台中为 运行 编写了简单的脚本:
var rs = search.query
({ query:
"SELECT * FROM cmis:document WHERE CONTAINS('PATH:\"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*\"')",
language:"cmis-alfresco" });
for (var r in rs)
{ logger.log(rs[r].parent.name + "/" + rs[r].name + "\t" + rs[r].properties.status); }
有3个问题:
1) 脚本有效,但我得到的不是文档状态 "NULL"。我的理解是,脚本不会 return 自定义 属性 文档 - {httр://www.mytest.ru/model/test/contract/1.0}status,但我只能获得 none-自定义属性,例如 {httр://www.alfresco.org/model/content/1.0}creator。
2) 我想获取只有状态 "on-sign" 的文档列表,但脚本将 return 所有指定的属性而不进行过滤。
如何根据我的要求更改代码?
3) 我可以使用 Alfresco 的内置网络脚本获取此信息吗?
提前致谢。
如果您是 运行 服务器端 JavaScript 控制台中的代码,它可以完全访问 JavaScript [,则不清楚为什么要为此使用 CMIS =23=] 和本机搜索。
与使用 JavaScript 和 CMIS 相比,您可能会发现首先使用管理控制台中可用的节点浏览器让查询正常工作会更容易。
转到管理控制台,然后转到节点浏览器,并将其放入搜索框中:
PATH:"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*" =test:status:"on-sign"
确保选择 "fts-alfresco"。
现在您有了一个有效的查询,您可以返回 JS 控制台并在您的 search.query 调用中使用它。