Web Chapter 22 SharePoint Web
Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web 21 22-1 SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f Views.asmx View SharePoint Web Web 22-2 SQL Server Oracle CRUD Create Retrieve Update Delete Web GetList GetListItems 306
21 Microsoft SharePoint 07 307 22.2 22.1 22.1 Column GetList XML Attribute.2 / Title DocTemplateUrl URL DefaultViewUrl URL Description ImageUrl URL Name GUID BaseType FeatureId GUID Created Modified LastDeleted ServerTemplate ID Version Direction RTL LTR none ThumbnailSize WebImageHeight Web WebImageWidth Web Flags ItemCount AnonymousPermMask RootFolder WriteSecurity
Web 21 308 22 / Author EventSinkAssembly EventSinkClass EventSinkData EmailInsertsFolder EmailAlias WebFullUrl URL WebId Web ID SendToLocation ScopeId MajorVersionLimit MajorWithMinorVersionLimit WorkflowId ID HasUniqueScopes AllowDeletion AllowMultiResponses EnableAttachments EnableModeration EnableVersioning Hidden MultipleDataList Ordered ShowUser ID EnableMinorVersion RequireCheckout 22.1
Lists.asmxWeb Windows Lists.asmxWeb Web SharePoint _vti_bin Web http://[portal-server]/_vti_bin/lists.asmx http:// [Portal-Server]/sitedirectory/HR/_vti_bin/Lists.asmx HR Web Windows siteurl TextBox retrievelistsbutton sitelists ListView titlelists ListBox Click sitelists SelectedIndexChanged 22.1 GetListCollection GetListItems using System; using System.Xml; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ListRetriever public partial class Form1 : Form private win2k3r2lab.lists listservice = null; public Form1() InitializeComponent(); 22.2 21 private void retrievelistsbutton_click(object sender, EventArgs e) listservice = new ListRetriever.win2k3r2lab.Lists(); listservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); listservice.url = siteurl.text; XmlNode listcollection = listservice.getlistcollection(); sitelists.items.clear(); MessageBox.Show(listCollection.ChildNodes[0].OuterXml); 22.1 ListRetriever Microsoft SharePoint 07 309
22 21 Web foreach (XmlNode listnode in listcollection.childnodes) ListViewItem lvi = new ListViewItem(); lvi.text = listnode.attributes.getnameditem("title").value; lvi.tag = listnode.attributes.getnameditem("id").value; lvi.subitems.add( listnode.attributes.getnameditem("servertemplate").value); sitelists.items.add(lvi); private void sitelists_selectedindexchanged(object sender, EventArgs e) titlelist.items.clear(); if (sitelists.selecteditems.count == 0) return; string listguid = (string)sitelists.selecteditems[0].tag; XmlNode itemcollection = listservice.getlistitems( listguid, string.empty, null, null, "0", null, string.empty); foreach (XmlNode item in itemcollection.selectnodes("//*[local-name()='row']")) titlelist.items.add( item.attributes.getnameditem("ows_title") == null? "No title" : item.attributes.getnameditem("ows_title").value); 22.1 ListRetriever Web XML GetListCollection XML 22.1 GetListItems XML ADO RecordSet XML ADO.NET DataSet DataSet GetListItems XML Attribute ows_ SharePoint 01 Office Web Server SharePoint ows_id Attribute ows_title Attribute 310
SharePoint SharePoint SharePoint GUI GUI XML Attribute Web UpdateList SharePoint UpdateList f listname /GUID f listproperties XML f newfields XML XML f updatefields XML f deletefields XML 22.2 21 f listversion XML.1.2 UpdateList Microsoft SharePoint 07 311
Web 21 312 22 AllowMultiResponses Description Direction LTR RTL None EnableAssignedToEmail EnableAttachments EnableModeration True EnableVersioning True Hidden / MultipleDataList Web Ordered ShowUser Title 22.2 UpdateList
First Name Last Name // GUID string listguid = "3DE6337E-7E49-4AD6-9936-8440CF7711"; win2k3r2lab.lists listservice = new ListUpdater.win2k3r2lab.Lists(); listservice.url = "http://win2k3r2lab/sitedirectory/research/_vti_bin/lists.asmx"; listservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); XmlDocument doc = new XmlDocument(); // XmlElement properties = doc.createelement("list"); properties.setattribute("title", "Updated List Title"); properties.setattribute("description", "Updated List Description"); // (first name, last name) XmlElement newfields = doc.createelement("fields"); XmlElement newmethod = doc.createelement("method"); newfields.appendchild(newmethod); newmethod.setattribute("id", "1"); XmlElement newfield = doc.createelement("field"); newmethod.appendchild(newfield); newfield.setattribute("readonly", "FALSE"); newfield.setattribute("displayname", "First Name"); newfield.setattribute("name", "FirstName"); newfield.setattribute("type", "Text"); newfield.setattribute("frombasetype", "TRUE"); // last name newmethod = doc.createelement("method"); newmethod.setattribute("id", "2"); newfield = doc.createelement("field"); newfield.setattribute("readonly", "FALSE"); newfield.setattribute("displayname", "Last Name"); newfield.setattribute("name", "LastName"); newfield.setattribute("type", "Text"); newfield.setattribute("frombasetype", "TRUE"); newmethod.appendchild(newfield); newfields.appendchild(newmethod); 22.2 21 listservice.updatelist(listguid, (XmlNode)properties, (XmlNode)newFields, null, null, string.empty); XML <Fields> <Method Cmd="#"> <Field> Microsoft SharePoint 07 313
22 Web 21 < > <Formula>..</Formula> </Field> </Method> </Fields> <Formula> // newfields = doc.createelement("fields"); newfield = doc.createelement("field"); newfields.appendchild(newfield); newmethod = doc.createelement("method"); newmethod.setattribute("id", "3"); newfield.setattribute("readonly", "TRUE"); newfield.setattribute("displayname", "Full Name"); newfield.setattribute("name", "FullName"); newfield.setattribute("type", "Calculated"); newfield.setattribute("resulttype", "Text"); newmethod.appendchild(newfield); XmlElement formula = doc.createelement("formula"); formula.innertext = "=[Last Name]&\", \"&[First Name]"; XmlElement formuladisplaynames = doc.createelement("formuladisplaynames"); formuladisplaynames.innertext = "=[Last Name]&[First Name]"; newfield.appendchild(formula); newfield.appendchild(formuladisplaynames); XmlElement fieldrefs = doc.createelement("fieldrefs"); fieldrefs.innerxml = "<FieldRef Name='First Name'/><FieldRef Name='Last Name'/>"; newfield.appendchild(fieldrefs); newfields.appendchild(newmethod); listservice.updatelist(listguid, null, (XmlNode)newFields, null, null, string.empty); GUID Task DefectTracking Contacts 314
XML <batch> GUID ID <batch> 22.2 using System; using System.Xml; using System.Collections.Generic; using System.Text; namespace ItemUpdater class Program static void Main(string[] args) win2k3r2lab.lists listservice = new ItemUpdater.win2k3r2lab.Lists(); listservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); listservice.url = "http://win2k3r2lab/sitedirectory/research/ _vti_bin/lists.asmx"; XmlDocument doc = new XmlDocument(); XmlElement batchelement = doc.createelement("batch"); batchelement.setattribute("onerror", "Continue"); batchelement.setattribute("listversion", "1"); batchelement.innerxml = "<Method ID=\"1\" Cmd=\"New\"> " + "<Field Name=\"Title\">This is a new item</field>" + "<Field Name=\"First_x00_Name\">Bob</Field>" + "<Field Name=\"Last_x00_Name\">Jones</Field>" + "</Method>"+ "<Method ID=\"2\" Cmd=\"Update\">" + "<Field Name=\"ID\">4</Field>" + "<Field Name=\"Title\">Title Changed!</Field>" + "</Method>" + "<Method ID=\"3\" Cmd=\"Delete\">" + "<Field Name=\"ID\">4</Field>" + "</Method>"; 22.2 21 XmlNode results = listservice.updatelistitems 22.2 Microsoft SharePoint 07 315
22 21 Web ("Updated List Title", batchelement); Console.WriteLine(results.OuterXml); Console.ReadLine(); 22.2 UpdateListItems XmlNode XML ID UpdateListItems First Name field First_x00_Name x00 XML NOTE SharePoint SharePoint Web SharePoint SharePoint XML / XML 07 / SharePoint MOSS 07 Content Type 316
SharePoint Folder Order Item SharePoint / SharePoint SharePoint SharePoint SharePoint 03 Order Order Number Order Item SKU Item Number New Order New Order Item Web ViewFields XML 22.3 GetListItems <QueryOptions> XML <Folder> 22.2 21 using System; using System.Xml; using System.Collections.Generic; using System.Text; namespace HierarchyDemo class Program 22.3 Microsoft SharePoint 07 317
22 21 Web static void Main(string[] args) win2k3r2lab.lists listservice = new HierarchyDemo.win2k3r2lab.Lists(); listservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); XmlDocument doc = new XmlDocument(); XmlNode viewfieldsparent = doc.createelement("viewfields"); viewfieldsparent.innerxml = "<FieldRef Name=\"ID\"/>" + "<FieldRef Name=\"Order_x00_Number\"/>"; XmlNode listitems = listservice.getlistitems( "Hierarchy Demo", "", null, viewfieldsparent, "0", null, ""); foreach (XmlNode item in listitems.selectnodes("//*[local-name()='row']")) Console.WriteLine("Order: " + item.attributes.getnameditem("ows_title").value); Console.WriteLine("Order #: " + item.attributes.getnameditem("ows_order_x00_number").value); string foldername = item.attributes.getnameditem("ows_title").value; XmlNode queryoptions = doc.createelement("queryoptions"); queryoptions.innerxml = "<Folder>" + foldername + "</Folder>"; XmlNode viewfields = doc.createelement("viewfields"); viewfields.innerxml = "<FieldRef Name=\"ID\"/>" + "<FieldRef Name=\"OrderItem\"/>" + "<FieldRef Name=\"SKU\"/>"; XmlNode subitems = listservice.getlistitems( "Hierarchy Demo", "", null, viewfields, "0", queryoptions, ""); int x = 0; foreach (XmlNode subitem in subitems.selectnodes("//*[local-name()='row']")) if (x > 0) // Console.WriteLine( string.format("\titem 0: 1", subitem.attributes.getnameditem("ows_orderitem").value, subitem.attributes.getnameditem("ows_title").value)); Console.WriteLine("\tSKU: " + subitem.attributes.getnameditem("ows_sku").value); x++; 22.3 318
Console.ReadLine(); 22.3 Order: First Order Order #: 1001.00000000000 Item 1.00000000000000: MP3 Player SKU: MP3100 / / SharePoint Microsoft Office SharePoint 07 22-3 SharePoint MOSS MOSS 07 Web 22.3 21 GetVersionCollection XmlNode versions = listservice.getversioncollection("updated List Title", "4", "Title"); XML <Versions xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <Version Title="Title Changed Again Again Again" Modified="6/26/06 3:21:44 AM" /> Microsoft SharePoint 07 3
22 Web 21 <Version Title="Title Changed Again Again" Modified="6/26/06 3:21: AM" /> <Version Title="Title Changed Again" Modified="6/26/06 3:21:08 AM" /> <Version Title="Title Changed!" Modified="6/26/06 2:38:16 AM" /> </Versions> Web GetListItemChanges ows_owshiddenversion Web API Web Web Web 22-4 CAML GetListItems Web Web Visual Studio 05 Web URL http://lab/sitedirectory/research/_vti_bin/lists. asmx http://lab/_vti_bin/lists.asmx URL 3
CAML CAML SharePoint SDK win2k3r2lab.lists listservice = new GetListItemsQuery.win2k3r2lab.Lists(); listservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); listservice.url = "http://win2k3r2lab/sitedirectory/research/_vti_bin/lists.asmx"; XmlDocument doc = new XmlDocument(); XmlElement query = doc.createelement("query"); query.innerxml = "<OrderBy>" + "<FieldRef Name=\"Title\"/>"+ "</OrderBy>"+ "<Where>" + "<Eq>" + "<FieldRef Name=\"First_x00_Name\"/>" + "<Value Type=\"Text\">Bob</Value>"+ "</Eq>"+ "</Where>"; XmlNode results = listservice.getlistitems("updated List Title", "", query, null, "0", null, ""); Console.WriteLine(results.OuterXml); foreach (XmlNode item in results.selectnodes("//*[local-name()='row']")) Console.WriteLine( string.format("0 : 1", item.attributes.getnameditem("ows_title").value, item.attributes.getnameditem("ows_full_x00_name").value)); Console.ReadLine(); 22.4 21 Bob This is a new item : string;#jones, Bob Title Changed Again Again Again : string;#jones, Bob ;# Microsoft SharePoint 07 321
22-5 SharePoint Web 22 21 Web First Name Bob Last Name Title win2k3r2lab.views viewservice = new ViewDemo.win2k3r2lab.Views(); viewservice.credentials = new System.Net.NetworkCredential("Administrator", "password"); viewservice.url = "http://win2k3r2lab/sitedirectory/research/_vti_bin/views.asmx"; XmlDocument doc = new XmlDocument(); XmlNode viewfields = doc.createelement("viewfields"); viewfields.innerxml = "<FieldRef Name=\"Last_x00_Name\"/>" + "<FieldRef Name=\"ows_Title\"/>"; XmlNode query = doc.createelement("query"); query.innerxml = "<Where>" + "<Eq>" + "<FieldRef Name=\"First_x00_Name\"/>"+ "<Value>Bob</Value>" + "</Eq>" + "</Where>"; viewservice.addview( "Updated List Title", "Bob Items", viewfields, query, null, "HTML", false); 322
viewservice.deleteview("updated List Title", "Bob Items"); XmlNode viewcollection = viewservice.getviewcollection("list Name"); Views XML View f Name GUID f DisplayName f DefaultView f URL f ImageUrl 22.5 21 Web SharePoint Web Web Web Microsoft SharePoint 07 3
NOTE