Alfresco CMIS:如何将ChangeEvent对象id转换为Document对象id?

时间:2014-03-10 07:42:30

标签: alfresco cmis dotcmis

上下文

在CMIS中,ChangeEvent告诉我在远程服务器上删除了一个对象,并且该对象的objectId例如是workspace://SpacesStore/3aca9034-3f53-4946-a0d9-ebcf054912a2;1.0ChangeEvent.Properties[cmis:objectId]的真实示例)

我在本地保留了所有objects的各种标识符,但没有一个标识符与ChangeEvent中的标识符完全匹配:

  • Document.Properties[cmis:objectId]
    3aca9034-3f53-4946-a0d9-ebcf054912a2;1.0
  • Document.Properties[alfcmis:nodeRef]
    workspace://SpacesStore/3aca9034-3f53-4946-a0d9-ebcf054912a2

问题

我应该如何从ChangeEvent.Properties[cmis:objectId]翻译为Document.Properties[cmis:objectId]

(例如,从workspace://SpacesStore/3aca9034-3f53-4946-a0d9-ebcf054912a2;1.03aca9034-3f53-4946-a0d9-ebcf054912a2;1.0

我可以删除前24个字符,但我想这只适用于Alfresco,而不适用于其他CMIS服务器。

环境

Alfresco Community 4.2.e由DotCMIS通过
访问 http://server/alfresco/api/-default-/public/cmis/versions/1.0/atom

1 个答案:

答案 0 :(得分:0)

需要从Alfresco apache chemeistry支持从DotCMIS分配请使用c#从文件名中查看以下代码访问对象id。

 IFolder selectedFolder1 = session1.GetObject(ObjectID) as IFolder;
   foreach (ICmisObject cmisObject in selectedFolder1.GetChildren())
     {
       if (cmisObject.GetType() != typeof(DotCMIS.Client.Impl.Folder))
         {
           if (cmisObject.Name.Contains(Uid))
              {
                        return false;

               }

          }
    }