我正在努力在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运行了相同的脚本,它运行正常。文档集已创建。微软几个月前改变了这一点。它曾经是可能的!
答案 0 :(得分:0)
好的,我找到了解决方案。 如果使用网站内容类型ID,则通过REST创建文档集已经有一段时间了。 就我而言,我必须使用库中内容类型的id。 所以我进入了我的库设置,选择了我的内容类型并将其复制。该 id略有不同。在我的情况下是0x0120D5200085474276CB6D314E9BC0E6F067D47DBE。但在你的情况下它会看起来不同。 如果我使用此ID,我的文档集就会成功创建! 这花了我几个小时才发现。