![]() |
Enterprise Systems »
SharePoint Server »
General
Intermediate
Using SharePoint Web Services to Explore Document LibrariesBy ExtrimUsing SharePoint Web Services to Explore Document Libraries |
C#, Windows, .NET, Visual Studio, Dev
|
||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

SharePoint is recognized technology standard for company infrastructure organization. It has wide functionality and allows to store different information in one single place. However, sometimes this information needs to be accessed from the application. In the article I will discuss the possibility to retrieve data from SharePoint using its WebServices. I will concentrate on document libraries.
SharePoint server structures information by WebSites. Each WebSite has many Lists. Lists are used to store concrete data using ListItems: links to files, contacts, appointments, etc. ListItems has fields with necessary values. The user is able to customize this fields to store data.
In the following section I will show general mechanism for retrieving data.
First of all it is necessary to add reference to SharePoint services. They are accessible from the following urls http://server-name/Site-Name/_vti_bin/service-name.asmx. For our purposes we will use two of them: webs.asmx and lists.asmx
Another important feature is that SharePoint services are scope dependent, so I you want to retrieve the List from the site S1 you should use following WS: http://server-name/S1/_vti_bin/lists.asmx, and so on.
// // Get Web Sites // private static void GetSites(string url, string login, string password) { Webs service = new Webs(); service.PreAuthenticate = true; service.Credentials = new System.Net.NetworkCredential(login, password); service.Url = url + @"/_vti_bin/webs.asmx"; XmlNode sites = null; try { sites = service.GetWebCollection(); } catch { return; } foreach (System.Xml.XmlNode site in sites.ChildNodes) { Console.WriteLine(site.Attributes["Url"].Value); GetLists(site.Attributes["Url"].Value, login, password); GetSites(site.Attributes["Url"].Value, login, password); } }
// //Get Web Site Lists // private static void GetLists(string url, string login, string password) { //List WebService Lists ls = new Lists(); ls.PreAuthenticate = true; ls.Credentials = new NetworkCredential(login, password); ls.Url = url + @"/_vti_bin/lists.asmx"; foreach (XmlNode list in ls.GetListCollection().ChildNodes) { //Check whether list is document library if (Convert.ToInt32(list.Attributes["ServerTemplate"].Value) != 0x65) { continue; } string title = list.Attributes["Title"].Value; string listUrl = list.Attributes["DefaultViewUrl"].Value.Replace("/Forms/AllItems.aspx", string.Empty); char[] separator = new char[] { '/' }; string listPath = url.Substring(0, url.LastIndexOf('/')); Console.WriteLine(listPath + listUrl + "/" + title); AddListsItems(url, title, login, password); } }
Sorry, for being so concise. I'm quite new to SharePoint, but this task made me some troubles. So I've decided to post it.
The article will be further updated to show how to retrieve list items basing on SharePoint XML Queries.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 8 Jul 2007 Editor: |
Copyright 2007 by Extrim Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |