SharePoint

More on VBScript and SharePoint SOAP

In response to a question from a reader, Tim, this is a follow-up from an earlier article on SharePoint, SOAP and VBScript. This time, we'll look at how to do more complex calls to SharePoint web services in VBScript

Some web services in SharePoint require passing XML as parameters. Unfortunately, you can't pass an XML document, it has to be an XML node element, and this takes a bit of effort to construct in VBScript.

The example we'll use is making a call to GetListItems, which returns all items in a SharePoint library, optionally matching a query formatted using a special XML syntax.

Browser-based InfoPath forms in SharePoint

Another running post, this one aims to collect information about using InfoPath to post browser-based forms on SharePoint 2007:

  • This page suggests that it's possible to force browser-based display of forms within SharePoint, even if the InfoPath client is available. I think this is desirable behavior because it creates a consistent user experience and allows easier testing for the person deploying the form.
  • The XmlFormView webpart appears to be another way to host forms in a SharePoint browser.

Securely expose SharePoint in an extranet scenario

I'm currently looking into the feasibility (and danger) of exposing a SharePoint 2007 install on a public website in an extranet-type scenario.

While there's no doubt that Microsoft has greatly improved the security of their products in recent years, I'm still naturally wary whenever it comes to using their systems in an unprotected environment. The other problem with using SharePoint in a public environment is the Active Directory question -- how do you manage identity in a federated environment, especially when not all participants may have Active Directory installed?

Some interesting resources I've discovered to date include:

SharePoint core definitions

GarrathE has posted a nice summary of SharePoint definitions, including terms such as server farm, web application, site collection, top-level site, site, lists, libraries, items and documents.

Making Site Templates with Data Views actually WORK

Following on from my previous post about naming DataSources to use ListName rather than ListID, I thought I would share another secret.

Y'see, you may have noticed that even if you create a re-usable Web Part, you can't just save the whole site as a template and then create new sites ... the Data View web part breaks again.

So what gives? Well, SharePoint in its infinite wisdom, saves Data Library Source information in ListID form. To fix this, you'll need a CAB viewer (such as WinZip or 7-Zip), and a CAB creator (I use the free ZipWrangler tool).

Control pages display in ONET.XML

I need to write a new article called "Don't fear ONET.XML" since that's what I'm discovering right now.

But just a quick snippet (thanks Frode !) which is worth remembering:

To change a site definition to hide the display of pages in the Navigation menu bars by default (ie. unticking [ ] Show pages in Site Settings -> Look and Feel -> Navigation)), just find this:


<Feature ID="541F5F57-C847-4e16-B59A-B31E90E6F9EA">
  

SharePoint fix broken administrator

One of the most annoying SharePoint problems is that export breaks if the original site administrator user is renamed or removed from Active Directory.

Michael Van Cleave lists a fix -- although I haven't tested it, I was about 80% of the way to a solution using exactly his technique, so I'm pretty confident it will work.

He also has a very handy entry on migrating from SharePoint 2003 to 2007.

Nice job Michael!

Customize SharePoint MiniConsole

Ok, this one's easy with one trick. If you want to modify the links shown in the SharePoint MiniConsole (shown, for example, as the "Create Site" and "Add Link to Site" buttons in the Site Directory), just open the page you want and look for code like this:


<asp:Content ContentPlaceHolderId="PlaceHolderMiniConsole" runat="server">
	<SPSWC:MiniConsole runat="server">
	<SPSWC:SPSRepeatedControls id="RptControls" runat="server" HeaderHtml="" BeforeControlHtml="<td class='ms-toolbar' nowrap='true' ID='_spFocusHere'>"
  

More on Data Form Web parts

If you use Data Form Web Parts in SharePoint at all, you must read this MSDN article by Eray Chou. This in particular caught my eye:

SPDataSource Parameters

When in List or ListItem mode, the SelectParameters collection expects a number of well known parameter names to determine the appropriate list to bind to:

  • ListID – GUID that corresponds to a List’s ListID.
  • ListName – Display name for a List.
  • ListItemId – ID for a single item in ListItem mode
  • WebUrl – Url to the web. When not specified, SPDataSource uses the current web to resolve the previous parameters. You can also use this parameter to access lists in other Web sites in the same Site Collection assuming you have permissions to that list.

Get a List's Guid

The two easiest ways to retrieve a List's globally unique identifier in SharePoint 2007 are:

SharePoint Designer 2007

  1. Open the SharePoint site being examined.
  2. Click Data View -> Manage Data Sources ...
  3. Highlight the List and click hover drop-down -> Show Data -> Click on the list name... hyperlink at the top of the Data View.
  4. Note the ID shown in this window.

VBScript

  1. Use the following code snippet:
    ' Get the root element object
    Set SOAPClient = createobject("MSSOAP.SOAPClient")
    SOAPClient.mssoapinit "http://sharepoint/site/_vti_bin/Lists.asmx?WSDL"
    Set xmlDoc = SOAPClient.GetListCollection()
    
    DisplayNode xmlDoc
    

    in conjunction with the DisplayNode XML print function.

Syndicate content