是否可以在露天使用 CMIS 进行批量更新。
我有不同的文档类型,每个文档类型在露天存储库中都有多个文档。
现在我的要求是,如果我要更新任何文档的任何单个属性,那么它应该反射(reflect)相同类型的所有文档。
我可以使用 CMIS 执行此操作吗?
如果是,请提供执行此操作的步骤和示例代码。
提前致谢
最佳答案
困难的方法(也是啰嗦的方法)是查询文档,然后设置每个文档的属性。但 CMIS 规范实际上提供了一种更好的方法:批量更新。
代码如下:
ArrayList<CmisObject> docList = new ArrayList<CmisObject>();
Document doc1 = (Document) getSession().getObjectByPath("/bulk/bulktest1.txt");
docList.add(doc1);
Document doc2 = (Document) getSession().getObjectByPath("/bulk/bulktest2.txt");
docList.add(doc2);
Document doc3 = (Document) getSession().getObjectByPath("/bulk/bulktest3.txt");
docList.add(doc3);
HashMap<String, Object> props = new HashMap<String, Object>();
props.put("cmis:description", "description set in bulk");
List<BulkUpdateObjectIdAndChangeToken> updatedIds = getSession().bulkUpdateProperties(docList, props, null, null);
System.out.println("Updated " + updatedIds.size() + " docs.");
在我的示例中,我按路径获取每个文档,但当然您也可以运行查询并以这种方式构建列表。
要在 Alfresco 中使用此功能,您必须使用 CMIS 1.1 和浏览器绑定(bind),因此请确保您的服务 URL 为 http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser .
关于java - 如何使用 CMIS 在 Alfresco 中进行批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39468515/