以编程方式为Alfresco中的文档设置属性(标题,描述)

时间:2013-03-25 07:18:06

标签: c# alfresco cmis dotcmis

我遇到了一些麻烦,我在编程方面在露天创建的文档中添加了元数据。

我正在使用dotCMIS库。

我有以下代码:

IDictionary<string, object> properties = new Dictionary<string, object>();
properties[PropertyIds.Name] = "title.doc";
properties[PropertyIds.ObjectTypeId] = "cmis:document";

ContentStream contentStream = new ContentStream();
contentStream.FileName = "title.doc";
contentStream.MimeType = "application/msword";
contentStream.Length = bytes.Length;
contentStream.Stream = new MemoryStream(bytes);
IDocument doc = folder.CreateDocument(properties, contentStream, null);

所以我还想举例说明,标题和描述以及关键词,参考文献等...但我不知道如何。

我尝试过类似的东西:

properties["cm:title"] = "some title";

OR

properties["cmis:title"] = "some title";

但是仍然没有任何想法,如何做到这一点?

注意:我也尝试从文档返回所有属性,但那些不在那里,那么我该如何设置呢?

我有这个:

    string queryGetDoc = "SELECT * FROM cmis:document WHERE cmis:name='document.doc'";
    IItemEnumerable<IQueryResult> docResults = session.Query(queryGetDoc, false);
    IQueryResult docHit = docResults.FirstOrDefault();
    string docId = docHit["cmis:objectId"].FirstValue.ToString();

      IDocument document = session.GetObject(docId) as IDocument;

        IList<IProperty> listOfProperties = document.Properties;

        foreach(IProperty p in listOfProperties)
        {
            Console.WriteLine(p.QueryName); 
        }

我收到了这个:

cmis:isLatestMajorVersion
cmis:contentStreamLength
cmis:contentStreamId
cmis:versionSeriesCheckedOutBy
cmis:objectTypeId
cmis:versionSeriesCheckedOutId
cmis:name
cmis:contentStreamMimeType
cmis:versionSeriesId
cmis:creationDate
cmis:changeToken
cmis:versionLabel
cmis:isLatestVersion
cmis:isVersionSeriesCheckedOut
cmis:lastModifiedBy
cmis:createdBy
cmis:checkinComment
cmis:objectId
cmis:isImmutable
cmis:isMajorVersion
cmis:baseTypeId
cmis:contentStreamFileName
cmis:lastModificationDate

这是否意味着文档上不存在其他道具?虽然在图形用户界面中我可以设置标题和描述,以及关键字和参考...

发生了什么事,有人想知道吗?

1 个答案:

答案 0 :(得分:3)

如果您是CMIS的新手,并希望轻松查看您的资源库包含哪些属性/选项/等,那么学习和调查的最佳方式是使用Apache Chemistry CMIS Workbench。它是一个独立的Java工具,用于查询和浏览您的仓库

首先,如评论中所述,在Alfresco中创建一个标题和描述集的测试文件: Properties

接下来,启动Apache Chemistry CMIS Workbench,连接到您的仓库,浏览到相关节点,然后查看标准属性:

CMIS Props

最后,查看扩展,了解Alfresco特定部分(如标题和描述)是如何暴露的:

extensions

因此,您需要使用标题和说明作为扩展名,Documented on the Alfresco Wiki。您可能还想查看Alfresco Extension for OpenCMIS,然后为.Net

执行类似的操作