Отправка методов RPC SharePoint Foundation
Дата последнего изменения: 23 марта 2010 г.
Применимо к: SharePoint Foundation 2010
URL-протокол можно использовать в сочетании с языком Collaborative Application Markup Language (CAML) и протоколом RPC SharePoint Foundation для запросов к интерфейсному веб-серверу, в котором выполняется Microsoft SharePoint Foundation 2010. Следует использовать элемент CAML Method для представления одного запроса или элемент Batch, содержащий несколько элементов Method, для представления нескольких запросов с использованием тела представления формы на странице ASPX. В следующей программной задаче показан метод создания формы для представления запросов.
Создание формы для представления запросов
Создайте страницу ASPX и добавьте директиву страницы, например, следующую, которая регистрирует пространство имен Microsoft.SharePoint.WebControls для элемента управления сервера.
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Примечание Можно получить значение PublicKeyToken для текущего развертывания SharePoint Foundation 2010 на основании файла default.aspx, путь: диск_локального_компьютера:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\sts, или на основании сведений, предоставляемых для сборки Microsoft.SharePoint, путь: диск_локального_компьютера:\%WINDOWS%\assembly в проводнике Windows.
Добавьте следующий блок скриптов для автоматической вставки элемента управления FormDigest в каждый элемент Method, когда отправляется форма.
<script type="text/javascript" language="JavaScript"> function InsertSecurityValidation(oForm) { var sFormDigest = '<SetVar Name="__REQUESTDIGEST">' + oForm.elements["__REQUESTDIGEST"].value + "</SetVar>\n"; var oPostBody = oForm.elements["PostBody"]; var rePattern = /<\/Method>/g; oPostBody.value = oPostBody.value.replace(rePattern, sFormDigest + "</Method>"); } </script>
Создайте форму на странице ASPX, например, такую как следующая, в которой атрибут action содержит URL-команду, которая представляется серверу.
<form method="post" action="http://Server_Name/sites/Site_Name/_vti_bin/owssvr.dll" onsubmit="InsertSecurityValidation(this);"> <SharePoint:FormDigest runat="server" /> <input type="hidden" name="Cmd" value="DisplayPost" /> <textarea rows="18" name="PostBody" cols="72"></textarea> <input type="submit" value="Submit" /> <input type="reset" value="Reset" /> </form>
Форма использует метод DisplayPost для запроса, по которому сервер обрабатывает CAML, который содержится в теле представления.
Откройте форму в браузере и вставьте блок кода, такой как следующий, в тело представления, которое использует элемент Batch для представления нескольких методов RPC для добавления двух извещений в список извещений.
<ows:Batch Version="6.0.2.5608" OnError="Return"> <Method ID="A1"> <SetList>List_GUID</SetList> <SetVar Name="ID">New</SetVar> <SetVar Name="Cmd">Save</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Title"> New Program Manager</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Body"> Congratulations to Jane for her promotion!</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Expires"> 2001-09-14T00:00:00Z</SetVar> </Method> <Method ID="A2"> <SetList>List_GUID</SetList> <SetVar Name="ID">New</SetVar> <SetVar Name="Cmd">Save</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Title"> Sales rise by 10%</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Body">The accounting department has released its quarterly report. Check it out!</SetVar> <SetVar Name="urn:schemas-microsoft-com:office:office#Expires"> 2001-12-18T00:00:00Z</SetVar> </Method> </ows:Batch>
Компилирование программы
Элемент Batch должен содержать атрибут Version, который определяет версию SharePoint Foundation, которая выполняется на сервере. Каждый узел SetList должен задавать GUID списка.
При отправлении формы в этом образце кода добавляются две записи в список извещений.
Безопасность
Если на сервере включена проверка безопасности, для которой по умолчанию установлено true в SharePoint Foundation, элемент управления FormDigest сервера должен быть добавлен в форму. Сведения об этом элементе управления и о проверке безопасности см. в разделе Проверка безопасности и отправка данных для обновления. Каждый используемый в представлении элемент Method должен иметь заданный дайджест формы; в противном случае представление не пройдет проверки безопасности.