How to get a Document Library displayed in your Quick Launch through the Lists.asmx web service

So you have just created a Document Library (or any other SharePoint list for that matter) through the SharePoint Lists.asmx web service (AddList method: http://msdn.microsoft.com/en-us/library/lists.lists.addlist(v=office.12).aspx), and you wonder why this Document Library is not showing up in your site’s Quick Launch? Fortunately, there is the UpdateList method (http://msdn.microsoft.com/en-us/library/lists.lists.updatelist(v=office.12).aspx). But hey… there is no option to add the Document Library to the Quick Launch. Setting the Hidden attribute to TRUE does hide your Document Library from the Documents and Lists page, but setting it to FALSE only makes it show up at this same page, it doesn’t make the library show up in your Quick Launch.

It seems naughty Microsoft is not describing all attributes for the listProperties parameter of the UpdateList method on MSDN. Cause actually, a OnQuickLaunch attribute exists as well. Set this one to TRUE and your Document Library or List appears in your Quick Launch.

The entire SOAP envelope of your webservice call would look like this:

<?xml version=”1.0″ encoding=”utf-8″?>
<soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”>
    <soap:Body>
        <UpdateList xmlns=”http://schemas.microsoft.com/sharepoint/soap/”>
            <listName>[Name or GUID of the list]</listName>
            <listProperties><List OnQuickLaunch=”True” /></listProperties>
            <newFields></newFields>
            <updateFields></updateFields>
            <deleteFields></deleteFields>
            <listVersion></listVersion>
        </UpdateList>
    </soap:Body>
</soap:Envelope>

This also works if you just created a SharePoint list with the Create List action from Nintex Workflow 2007, and you’d like to get that list in your Quick Launch. Use the Call Web Service action, point to <your_site>/_vti_bin/Lists.asmx, choose UpdateList as the web method, and use the SOAP envelope above as an example to create your own envelope.

Leave a Reply