如何格式化其余的uri以在SP中创建文档集?
下面的JSOM代码工作正常,但我更喜欢使用REST,以便能够从工作流程中调用它。
var dsresult = SP.DocumentSet.DocumentSet.create(context, parentFolder, "docsetfromjsom", docsetCtId);
我根据this MSDN文章
尝试了这种格式var restQueryUrl = spAppWebUrl + "/_api/SP.AppContextSite(@target)/SP.DocumentSet.DocumentSet.create('serverrelativeurl','docsetname','ctid')?@target='spHostUrl'";
尝试过其他格式但没有成功。在jsom中你还需要包含上下文,但我假设在休息时你不需要使用它(我认为)。有人试过这个吗?
谢谢!
答案 0 :(得分:1)
我在already answered similar question SharePoint StackExchange {{3}}。
总而言之,似乎无法使用SharePoint 2013 REST API创建文档集,因为无法通过REST访问SP.DocumentSet.DocumentSet.create
函数。但您可以为此目的使用SharePoint 2010 REST API。
以下示例演示如何使用SharePoint 2010 REST接口创建文档集:
function getListUrl(webUrl,listName)
{
return $.ajax({
url: webUrl + "/_api/lists/getbytitle('" + listName + "')/rootFolder?$select=ServerRelativeUrl",
type: "GET",
contentType: "application/json;odata=verbose",
headers: {
"Accept": "application/json;odata=verbose"
}
});
}
function createFolder(webUrl,listName,folderUrl,folderContentTypeId)
{
return $.ajax({
url: webUrl + "/_vti_bin/listdata.svc/" + listName,
type: "POST",
contentType: "application/json;odata=verbose",
headers: {
"Accept": "application/json;odata=verbose",
"Slug": folderUrl + "|" + folderContentTypeId
}
});
}
function createDocumentSet(webUrl,listName,docSetName)
{
return getListUrl(webUrl,listName)
.then(function(data){
var folderUrl = data.d.ServerRelativeUrl + '/' + docSetName;
return createFolder(webUrl,listName,folderUrl,'0x0120D520');
});
}
<强>用法强>
在文档库中创建名为Orders
的文档集:
createDocumentSet(webUrl,'Documents','Orders')
.done(function(data)
{
console.log('Document Set ' + data.d.Name + ' has been created succesfully');
})
.fail(
function(error){
console.log(JSON.stringify(error));
});