CMIS Sharepoint 2013 - 无法更新文档
CMIS Sharepoint 2013 - Cannot Update Document
我无法使用 CMIS for Sharepoint 2013 更新文档。我不断收到错误消息 "The operation is attempting to update an object that is no longer current.",我不知道为什么会这样。
请你检查我下面的代码有什么问题:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;
parameters[DotCMIS.SessionParameter.AtomPubUrl] = url;
parameters[DotCMIS.SessionParameter.User] = username;
parameters[DotCMIS.SessionParameter.Password] = password;
parameters[SessionParameter.RepositoryId] = repositoryID;
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.CreateSession(parameters);
ICmisObject cmisobj = session.GetObject("12345");
IDictionary<String, Object> properties = new Dictionary<String, Object>();
properties["cmis:name"] = "MyNewName";
IObjectId newId = cmisobj.UpdateProperties(properties);
感谢您的回复。我尝试添加 IOperationContext 但我仍然遇到相同的错误。我是不是执行错了?
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.CreateSession(parameters);
IOperationContext oc = session.CreateOperationContext();
ICmisObject cmisobj = session.GetObject("12345", oc);
IDictionary<String, Object> properties = new Dictionary<String, Object>();
properties["cmis:name"] = "MyNewName";
IObjectId newId = cmisobj.UpdateProperties(properties);
这是一个已知的 SharePoint 错误。如果您在更新请求中包含更改令牌 (属性 "cmis:changeToken"),它将失败并出现此错误。 DotCMIS 自动添加此 属性 以防止丢失更新。
要排除更改令牌,您不得在获取对象时请求它。
使用 IOperationContext
对象调用 GetObject()
,该对象具有不包含 "cmis:changeToken" 的 属性 过滤器。然后 SharePoint 将接受更新请求。
我无法使用 CMIS for Sharepoint 2013 更新文档。我不断收到错误消息 "The operation is attempting to update an object that is no longer current.",我不知道为什么会这样。
请你检查我下面的代码有什么问题:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;
parameters[DotCMIS.SessionParameter.AtomPubUrl] = url;
parameters[DotCMIS.SessionParameter.User] = username;
parameters[DotCMIS.SessionParameter.Password] = password;
parameters[SessionParameter.RepositoryId] = repositoryID;
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.CreateSession(parameters);
ICmisObject cmisobj = session.GetObject("12345");
IDictionary<String, Object> properties = new Dictionary<String, Object>();
properties["cmis:name"] = "MyNewName";
IObjectId newId = cmisobj.UpdateProperties(properties);
感谢您的回复。我尝试添加 IOperationContext 但我仍然遇到相同的错误。我是不是执行错了?
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.CreateSession(parameters);
IOperationContext oc = session.CreateOperationContext();
ICmisObject cmisobj = session.GetObject("12345", oc);
IDictionary<String, Object> properties = new Dictionary<String, Object>();
properties["cmis:name"] = "MyNewName";
IObjectId newId = cmisobj.UpdateProperties(properties);
这是一个已知的 SharePoint 错误。如果您在更新请求中包含更改令牌 (属性 "cmis:changeToken"),它将失败并出现此错误。 DotCMIS 自动添加此 属性 以防止丢失更新。
要排除更改令牌,您不得在获取对象时请求它。
使用 IOperationContext
对象调用 GetObject()
,该对象具有不包含 "cmis:changeToken" 的 属性 过滤器。然后 SharePoint 将接受更新请求。