WEB开发网
开发学院软件开发Java 基于 IBM 和 FileNet 内容管理产品的联合查询服务... 阅读

基于 IBM 和 FileNet 内容管理产品的联合查询服务

 2010-02-05 00:00:00 来源:WEB开发网   
核心提示: 与 Java Integrate API 的方式一样,使用查询前要判断存储库是否支持该项操作,基于 IBM 和 FileNet 内容管理产品的联合查询服务(8),清单 7. 判断存储库是否支持查询,如果支持,特别是其提供的内容联合查询服务,大大提高了在开发企业级应用过程中对数据的整合利用程度,创

与 Java Integrate API 的方式一样,使用查询前要判断存储库是否支持该项操作。

清单 7. 判断存储库是否支持查询,如果支持,创建一个联合查询实例

 if(!asProxy.getRepositoryProfile(stateKey, "IBMCMConnector").getCanQuery() 
 || !asProxy.getRepositoryProfile(stateKey, "FileNetP8CMConnector").getCanQuery()){ 
 System.out.println("选定进行联合查询的存储库不支持查询操作。"); 
 return; 
 } 
 MultiQuery query = new MultiQuery(); 

和 Java Integrate API 不同的是,这里根据存储库的数量创建相同数目的 Query 实例,并将这些示例作为属性添加到联合查询对象中。

清单 8. 设置联合查询属性并执行

 query.setMaxResults(10); // 设置最大查询结果数 
 query.setSelectionCriteria("Name Is NotNull"); // 查询条件 
 // 定制返回结果列表的字段 
 query.addSelectionProperties({"stringType", "dateType", "integerType"}); 
 
 
 String[] repos = {cmLogonID, p8LogonID}; 
 Query[] qList = new Query[repos.size()]; // 创建一个容纳和存储库相同数目的 Query 对象的数组 
 for(int i=0; i < repos.size(); ++i) { 
 String repoID = (String)repos.elementAt(i); 
 String logonID = (String)logons.elementAt(i); 
 Query q = new Query(); 
 q.setLogonID(logonID); 
 q.setRepositoryID(repoID); 
 // 联合查询对象的属性也是该查询实例的属性 
 if(dataMapName != null) { 
 DataMap map = asProxy.getDataMap(stateKey, dataMapName, repoID); 
 q.setDataMapInUse(map); 
 } 
 q.setMaxResults(query.getMaxResults()); 
 q.setSelectionCriteria(query.getSelectionCriteria()); 
 q.setFullTextCriteria(query.getFullTextCriteria()); 
 q.setIncludeMimeTypes(query.getIncludeMimeTypes()); 
 q.setIncludeRelevancyScores(query.getIncludeRelevancyScores()); 
 q.setIncludeItemNames(query.getIncludeItemNames()); 
 q.setSelectionProperties(query.getSelectionProperties()); 
 qList[i] = q; 
 } 
 query.setQueryList(qList); 
 SimpleResultSet rs = asProxy.execMultiQuery(stateKey, query); 

同样,查询完毕后需要释放相关资源

清单 9. 释放资源

 asProxy.logoff(stateKey, cmLogonID); 
 asProxy.logoff(stateKey, p8LogonID); 
 asProxy.freeInstance(stateKey); 

结束语

通过 ICI 提供的同一接口集成 IBM Content Manager 和 FileNet P8 Content Manager,实现了对非结构化存储库的便捷管理,特别是其提供的内容联合查询服务,大大提高了在开发企业级应用过程中对数据的整合利用程度,同时也简化了企业应用的开发。

上一页  3 4 5 6 7 8 

Tags:基于 IBM FileNet

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接