Procedimiento para enviar elementos Method de RPC de Windows SharePoint Services
Puede usar el protocolo de la dirección URL junto con el Lenguaje de marcado de la aplicación de colaboración (CAML) y el protocolo de llamada a procedimiento remoto de Windows SharePoint Services para enviar solicitudes a un servidor cliente web que ejecute Windows SharePoint Services. Use el elemento Method de CAML para enviar una sola solicitud o un elemento Batch que contenga varios elementos Method para enviar varias solicitudes, mediante el cuerpo del envío de un formulario en una página .aspx. La siguiente tarea de programación muestra cómo crear un formulario para enviar las solicitudes.
Para crear un formulario para enviar las solicitudes
Cree una página .aspx y agregue una directiva de página, como la siguiente, que registra el espacio de nombres de Microsoft.SharePoint.WebControls para el control de servidor.
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Nota
Puede obtener el valor PublicKeyToken para la implementación actual de Windows SharePoint Services desde el archivo default.aspx en la ruta de acceso unidad_local
:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\sts
o de la información proporcionada para el ensamblado de Microsoft.SharePoint en unidad_local:\%WINDOWS%\assembly
en el Explorador de Windows.Agregue el siguiente bloque de script para insertar el control FormDigest automáticamente en cada elemento Method cuando se envíe el formulario.
<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>
Cree un formulario en la página .aspx como el siguiente, donde el atributo action contenga el comando de dirección URL que se envía al servidor.
<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>
El formulario usa el método DisplayPost para solicitar que el servidor represente cualquier CAML incluido dentro del cuerpo del envío.
Abra el formulario en el explorador e inserte un bloque de código como el siguiente en el cuerpo del envío, el cual usa el elemento Batch para enviar varios elementos Method de RPC para agregar dos anuncios a una lista de anuncios:
<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>
Compilación del código
El elemento Batch debe contener un atributo Version que especifique la versión de Windows SharePoint Services que se está ejecutando en el servidor. Cada nodo SetList debe especificar el GUID de la lista.
Cuando se envía el formulario, este ejemplo agrega dos registros a una lista de anuncios.
Seguridad
Si la validación de seguridad está habilitada en el servidor, que es true de forma predeterminada en Windows SharePoint Services, deberá agregarse un control de servidor FormDigest al formulario. Para obtener información acerca de la validación de este control y seguridad, consulte Validación de seguridad y realización de envíos para actualizar datos. Para cada elemento Method usado en un envío, se debe haber especificado una síntesis de formulario; de lo contrario, el envío no pasará la validación de seguridad.