如果文档已经存在于使用Chemistry CMIS的Alfresco中,则创建新版本的文档

时间:2016-06-14 15:11:43

标签: java alfresco opencmis apache-chemistry

我正在尝试使用Chemistry CMIS创建一个文档,如下所示

final Map<String, Object> reportProps = new HashMap<String, Object>();
        reportProps.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
        reportProps.put(PropertyIds.NAME,file.getName());

session.getFolder().createDocument(reportProps, contentStream, VersioningState.MAJOR);

如果已存在同名文档,则会抛出CmisContentAlreadyExistsException。

如果这会引发此异常,我想创建一个新版本的文档。

或者有没有办法可以检查具有给定名称的文档是否已经存在于使用Chemistry CMIS的Alfresco存储库中,这样我无论如何都可以获取文档并使用新版本签入文档。

欢迎任何其他方法。

1 个答案:

答案 0 :(得分:2)

我经常检查文档是否已经存在,如果是,我会去更新。我没有去检查/检查过程,因为我设置Alfresco为每次更新创建版本(但我想这两种方法都有效)。

我对CMIS没有太多经验,但我确实记得这篇文章谈论你的用例。

http://ecmarchitect.com/archives/2013/08/26/3528

Document document = null;
try {
  document = parentFolder.createDocument(props, contentStream, null);
  System.out.println("Created new document: " + document.getId());
} catch (CmisContentAlreadyExistsException ccaee) {
  document = (Document) cmisSession.getObjectByPath(parentFolder.getPath() + "/" + fileName);
  System.out.println("Document already exists: " + fileName);
}
return document;