Procédure : publier des méthodes RPC SharePoint Foundation
Dernière modification : mardi 23 mars 2010
S’applique à : SharePoint Foundation 2010
Vous pouvez utiliser le protocole d’URL en combinaison avec CAML (Collaborative Application Markup Language) et le protocole RPC (Remote Procedure Call) Windows SharePoint Services pour publier des demandes sur un serveur Web frontal exécutant Microsoft SharePoint Foundation 2010. Utilisez l’élément CAML Method pour publier une demande unique ou un élément Batch contenant plusieurs éléments Method pour publier des demandes multiples, via le corps de publication d’un formulaire dans une page .aspx. La tâche de programmation suivante montre comment créer un formulaire pour la publication de demandes.
Pour créer un formulaire pour la publication de demandes
Créez une page .aspx et ajoutez une directive de page, telle que la suivante, qui inscrit l'espace de noms Microsoft.SharePoint.WebControls pour le contrôle serveur.
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Notes
Vous pouvez récupérer la valeur PublicKeyToken pour le déploiement SharePoint Foundation 2010 actuel à partir du fichier default.aspx dans le chemin d’accès Disque_local:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\sts ou à partir des informations fournies pour l’assembly Microsoft.SharePoint sur Disque_local:\%WINDOWS%\assembly dans l’Explorateur Windows.
Ajoutez le bloc de script suivant pour insérer automatiquement le contrôle FormDigest dans chaque élément Method lors de l'envoi du formulaire.
<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>
Créez un formulaire tel que le suivant dans la page .aspx, dans lequel l'attribut action contient la commande d'URL publiée sur le serveur.
<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>
Le formulaire utilise la méthode DisplayPost pour demander au serveur d'effectuer l'affichage, quel que soit le CAML contenu dans le corps de publication.
Ouvrez le formulaire dans le navigateur et insérez un bloc de code similaire à ce qui suit dans le corps de publication. Ce bloc utilise l'élément Batch pour publier plusieurs méthodes RPC permettant d'ajouter deux annonces dans une liste d'annonces :
<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>
Compilation du code
L'élément Batch doit contenir un attribut Version qui spécifie la version de SharePoint Foundation que le serveur exécute. Chaque nœud SetList doit spécifier le GUID de la liste.
Lorsque le formulaire est envoyé, cet exemple ajoute deux enregistrements dans une liste d'annonces.
Sécurité
Si la validation de sécurité est activée sur le serveur, qui est true par défaut dans SharePoint Foundation, un contrôle serveur FormDigest doit être ajouté dans le formulaire. Pour plus d'informations sur ce contrôle et sur la validation de sécurité, voir Validation de la sécurité et utilisation des publications pour la mise à jour des données. Chaque élément Method utilisé dans une publication doit avoir un chiffrement de formulaire spécifié ; sinon, la publication ne peut pas passer la validation de sécurité.