2010-10-27 72 views
2

我有我保存爲列表模板的SharePoint 2007自定義列表。我正在尋找一種方法,通過外部應用程序的Web服務調用從保存的模板創建新列表。如何通過Web服務從模板創建SharePoint 2007列表?

我已經查看了可用於SharePoint 2007的基本Web服務http://msdn.microsoft.com/en-us/library/bb862916(office.12).aspx,但調用該服務只是創建一個簡單的空白自定義列表。

如何從特定模板實例化列表?如何找到模板的功能ID?

回答

2

您可以使用HTTP調試器(如fiddler2)來分析SharePoint設計器進行查找的Web服務和遠程過程調用。例如,爲了獲得可用的列表模板,SPD使用DisplayPostRPC命令(例如,http://www.microsoft.com/technet/prodtechnol/default.mspx)發出HTTP請求。

 
POST http://[server]/[web]/_vti_bin/owssvr.dll?Cmd=DisplayPost 

用的XML有效載荷:

 
<?xml version="1.0" encoding="UTF-8"?> 
<ows:Batch OnError="Return" Version="12.0.0.000"> 
<Method ID="0,GetProjSchema"> 
    <SetVar Name="Cmd">GetProjSchema</SetVar> 
</Method> 
</ows:Batch> 

SPD然後分析在響應中的ListTemplates節點,以獲得模板名稱,類型和功能ID的列表。

要創建從一個特定的模板類型或特徵ID的列表中,SPD使用相同DisplayPost命令,此時用類似於消息體:

 
<?xml version="1.0" encoding="UTF-8"?> 
<ows:Batch OnError="Return" Version="12.0.0.000"> 
<Method ID="0,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">108</SetVar> 
    <SetVar Name="Title">Discussion Board</SetVar> 
    <SetVar Name="FeatureId">00bfea716a4943fab535d15c05500108</SetVar> 
    <SetVar Name="RootFolder" /> 
    <SetVar Name="LangID">1033</SetVar> 
</Method> 
</ows:Batch> 

有關如何使用RPC協議的示例請參閱this將文件上傳到SharePoint文檔庫(它使用author.dll而不是owssvr.dll,但技術類似)。

+0

提琴手是一個很好的建議,它有助於確定我得到的真實問題。 – 2010-11-08 23:17:26

相關問題