0

如何格式化其余 uri 以在 SP 中创建文档集?

下面的 JSOM 代码工作正常,但我更喜欢使用 REST 以便能够从工作流中调用它。

var dsresult = SP.DocumentSet.DocumentSet.create(context, parentFolder, "docsetfromjsom", docsetCtId);

我根据这篇MSDN 文章尝试了这种格式

var restQueryUrl = spAppWebUrl + "/_api/SP.AppContextSite(@target)/SP.DocumentSet.DocumentSet.create('serverrelativeurl','docsetname','ctid')?@target='spHostUrl'";

也尝试了其他格式,但没有成功。在 jsom 中,您还需要包含上下文,但我假设对于其余的调用,您不需要使用它(我认为)。以前有人试过吗?

谢谢!

4

1 回答 1

2

我已经在SharePoint StackExchange上回答类似的问题

总而言之,似乎无法使用 SharePoint 2013 REST API 创建文档集,因为SP.DocumentSet.DocumentSet.create无法通过 REST 访问函数。但是您可以使用 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));
});
于 2014-12-15T10:16:19.413 回答