首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Sharepoint 2013的dotCmis .CreateDocument

带有Sharepoint 2013的dotCmis .CreateDocument
EN

Stack Overflow用户
提问于 2014-04-10 14:10:17
回答 1查看 723关注 0票数 0

早上好,我需要用Apache创建一堆文档。然而,即使在最微不足道的情况下,SharePoint在调用folder.CreateDocument时也会触发CmisConstraintException。我已经测试了所有可用的VersioningStates,但这并不能解决问题。我使用dotCmis 0.6。顺便说一句,我的应用程序的Alfresco部分运行得很好。

-Armin

这是我的模型。

代码语言:javascript
复制
using DotCMIS;
using DotCMIS.Client;
using DotCMIS.Client.Impl;
using DotCMIS.Data.Impl;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
    static void Main(string[] args)
    {
        Dictionary<string, string> parameters;
        parameters = new Dictionary<string, string>();
        parameters[SessionParameter.BindingType] = BindingType.AtomPub;
        parameters[SessionParameter.AtomPubUrl] = "http://coretwo/" + "websites/migrationtest" + "/_vti_bin/cmis/rest?getRepositories";
        parameters[SessionParameter.User] = "joe@test.org";
        parameters[SessionParameter.Password] = "whoknows";


        var session = SessionFactory.NewInstance().GetRepositories(parameters).Single(r => r.Name.Equals("Dokumente")).CreateSession();
        var rFolder = session.GetRootFolder();


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

        byte[] content = UTF8Encoding.UTF8.GetBytes("Hello World!");

        ContentStream contentStream = new ContentStream();
        contentStream.FileName = "hello-world.txt";
        contentStream.MimeType = "text/plain";
        contentStream.Length = content.Length;
        contentStream.Stream = new MemoryStream(content);

        IDocument doc = rFolder.CreateDocument(properties, contentStream, null);  

    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 14:27:25

墨菲无处不在……我在这里发帖几分钟后就找到了答案。诀窍是在调用CreateDocument时使用DotCMIS.Enums.VersioningState.CheckedOut,然后进行签入。

以下是对我有效的方法:

代码语言:javascript
复制
IDocument doc = rFolder.CreateDocument(properties, contentStream, DotCMIS.Enums.VersioningState.CheckedOut);
doc.CheckIn(true, null, null, "Checkin", null, null, null);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22979885

复制
相关文章

相似问题

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