首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用DotCMIS/OpenCMIS修改CMIS文档的属性

如何使用DotCMIS/OpenCMIS修改CMIS文档的属性
EN

Stack Overflow用户
提问于 2013-04-22 16:15:13
回答 1查看 2.2K关注 0票数 0

假设我有一个文档doc,并希望将其barcode元数据更新为"01234"

文档可能已有其他属性,我不想丢失它们。

如果doc已经有了barcode,它将被覆盖。

如何在DotCMIS/OpenCMIS中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-22 16:22:52

在CMIS中,默认情况下,更新属性将覆盖现有值,并且默认情况下会保留未随updateProperties消息一起发送的属性。也就是说,您的两个需求都已经得到了协议语义的保证。

代码方面,请看一下适用于OpenCMIS的Updating properties code sample,以下是适用于您的案例:

代码语言:javascript
复制
CmisObject cmisobject = ....
Map<String, Object> updateProperties = new HashMap<String, Object>();
updateProperties.put("acme:barcode", "new value"); // single-value property
cmisobject.updateProperties(updateProperties);

对于DotCMIS,samples page提供了另一个有用的代码片段,以下是修改后的版本以映射您的用例:

代码语言:javascript
复制
ICmisObject cmisObject = ...

IDictionary<string, object> properties = new Dictionary<string, object>();
properties["acme:barcode"] = "new value";
IObjectId newId = cmisObject.UpdateProperties(properties);

if (newId.Id == cmisObject.Id) 
{
    // the repository updated this object - refresh the object
    cmisObject.Refresh();
}
else
{
    // the repository created a new version - fetch the new version
    cmisObject = session.GetObject(newId);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16142353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档