2010-10-27 3 views
2

У меня есть пользовательский список SharePoint 2007, который я сохранил как шаблон списка. Я ищу способ создать новый список из сохраненного шаблона с помощью вызова веб-службы из внешнего приложения.Как создать список SharePoint 2007 из шаблона через веб-службу?

Я уже рассмотрел основные веб-службы, доступные для SharePoint 2007 http://msdn.microsoft.com/en-us/library/bb862916(office.12).aspx, но вызов этого просто создает простой, пустой пользовательский список.

Как создать экземпляр списка из определенного шаблона? Как найти идентификатор функции для шаблона?

ответ

2

Вы можете использовать HTTP отладчик как fiddler2 для анализа веб-службы и удаленных вызовов процедур, что конструктор SharePoint делает, чтобы это выяснить.

Например, чтобы получить доступные шаблоны списков, SPD делает HTTP-запрос с помощью команды RPC , например.

 
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, СПД использует ту же команду 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

Скрипач была хорошая рекомендация, она помогла выявить истинные проблемы, которые я получаю. –