SharePoint 2007 & Web Services

På "Innovation Day: SharePoint 2007" visade jag hur man enkelt kan nyttja de Web Services som exponeras ut från SharePoint 2007. Dessa tjänster gör det möjligt att sköta i stort sett allt i SharePoint, det gäller bara att veta vilken tjänst man ska använda, då de är drygt 30 stycken...

En av dem är den som hanterar listor och återfinns här:

https://yourserver/_vti_bin/lists.asmx

Det jag enkelt visade var hur man kan lägga till en händelse i kalendern, exempelkod nedan. Viktigt är att först skapa en webbreferens som pekar till URL:en ovan och som är döpt till ListService.

ListService.Lists lService = new ListService.Lists();

lService.PreAuthenticate = true;
lService.Credentials = CredentialCache.DefaultCredentials;

XmlNode calendar = lService.GetList("Calendar");

string listName = calendar.Attributes["ID"].Value;

StringBuilder sb = new StringBuilder();
sb.Append("<Method ID=\"1\" Cmd=\"New\">");
sb.Append("<Field Name=\"ID\">New</Field>");
sb.Append("<Field Name=\"Title\">" + "Testing" + "</Field>");
sb.Append("<Field Name=\"EventDate\">" + "2007-03-04T15:00:00Z" + "</Field>");
sb.Append("</Method>");

XmlDocument xDoc = new XmlDocument();
XmlElement xBatch = xDoc.CreateElement("Batch");

xBatch.SetAttribute("OnError", "Return");

xBatch.InnerXml = sb.ToString();

try
{

XmlNode xReturn = lService.UpdateListItems(listName, xBatch);

MessageBox.Show(xReturn.OuterXml);
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);

}