在SharePoint Online中使用REST创建文档集

时间:2017-09-20 12:40:43

标签: rest sharepoint sharepoint-2010 office365

我正在努力在SharePoint中通过REST API创建文档集。我发现这样做的唯一解决方案是以下列方式使用旧的SharePoint 2010 REST界面:

$http({
  method: "POST",
  url: url + "/_vti_bin/listdata.svc/" + listTitle,
  data: JSON.stringify(docSetOptions),
  headers: {
    "Accept": "application/json;odata=verbose",
    "content-type": "application/json;odata=verbose",
    "X-RequestDigest": $('#__REQUESTDIGEST').val(),
    "Slug": _spPageContextInfo.siteServerRelativeUrl + "/" + url + docSetOptions.Path + "/" + docSetOptions.Title + "|" + docSetOptions.ContentTypeId,
  }
}).success(function (data, status, headers, config) {
  logtoconsole("document set created");
}).error(function (data, status, headers, config) {
  logtoconsole("document set error");
});

docSetOptions就是那些:

            var folder = new
            {
                Title = "foo",
                Path = "foo",
                ContentTypeId = "0x010050D9126DC6276846BF6D869EF2090EAD",
                ContentType = "SP.Data.Shared_x0020_DocumentsItem",
            };

id是我自定义内容类型的id,从文档集派生。

来源:http://www.itidea.nl/index.php/create-a-document-set-using-jsom-and-rest/

这对我有用,但会创建常规文件夹。没有文件集。有人知道这是否仍然适用于SharePoint Online? 我发现的唯一条目是关于SharePoint 2013。

更新:我在Premise Server上对我的SharePoint 2013运行了相同的脚本,它运行正常。文档集已创建。微软几个月前改变了这一点。它曾经是可能的!

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 如果使用网站内容类型ID,则通过REST创建文档集已经有一段时间了。 就我而言,我必须使用库中内容类型的id。 所以我进入了我的库设置,选择了我的内容类型并将其复制。该 id略有不同。在我的情况下是0x0120D5200085474276CB6D314E9BC0E6F067D47DBE。但在你的情况下它会看起来不同。 如果我使用此ID,我的文档集就会成功创建! 这花了我几个小时才发现。