OWSSVR.dll in SharePoint 3.0 benutten

Sinds v1 van SharePoint Team Services, heeft Microsoft OWSSVR.dll gebruikt om functies van SharePoint aan te roepen. Met de integratie van Web Services v2 wordt deze behoeft deels verouderd en in v3 nog meer.

Toch is OWSSVR.dll er nog steeds en speelt deze nog steeds een belangrijke rol met externe applicaties zoals SharePoint Designer. Het is onderdeel van FP-RPC (Front Page – Remote Procedure Call) niet te verwarren met Front Page Extensions.

Als ontwikkelaar kun je deze handige tool gebruiken. Hieronder een aantal voorbeelden en hoe het kan worden gebruikt.

  1. Alle data van een SharePoint lijst, inclusief de XSD:

    http://WebApp/[site]/_vti_bin/owssvr.dll?Cmd=ExportList&List={ListGuid}&Query=*&XMLDATA=TRUE
  2. Alle gegevens van een SharePoint-lijst, maar dan op basis van een specifieke weergave in de lijst:

    http://WebApp/[site]/_vti_bin/owssvr.dll?Cmd=ExportList&List={ListGuid}&View={ViewGuid}&XMLDATA=TRUE
  3. De response voor een eenvoudige weergave ziet er als volgt uit:
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
     xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
     xmlns:rs='urn:schemas-microsoft-com:rowset'
     xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
   <s:ElementType name='row' content='eltOnly' rs:CommandTimeout='30'>
      <s:AttributeType name='ows_City' rs:name='City' rs:number='1'>
         <s:datatype dt:type='string' dt:maxLength='512' />
      </s:AttributeType>
      <s:AttributeType name='ows_ID' rs:name='ID' rs:number='2'>
         <s:datatype dt:type='i4' dt:maxLength='4' />
      </s:AttributeType>
   </s:ElementType>
</s:Schema>
<rs:data>
   <z:row ows_City='Berlin' ows_ID='1' />
   <z:row ows_City='Paris' ows_ID='2' />
   <z:row ows_City='Honolulu' ows_ID='3' />
   <z:row ows_City='Munich' ows_ID='4' />
   <z:row ows_City='Bordeaux' ows_ID='5' />
   <z:row ows_City='New York City' ows_ID='6' />
</rs:data>
</xml>

Een van deze twee zou nuttig kunnen zijn voor het gebruik in een XML-web onderdeel of om via een externe toepassing en HTTP-verzoeken de XML-uitvoer verwerken. Het voorbeeld wat in deze blog wordt besproken gat over het gebruik van de XML-uitvoer in een InfoPath-formulier.

  1. Naast terugkerende XML-gegevens, kun je ook de definitie informatie ophalen. Bijvoorbeeld, de CAML-gebaseerde definitie van een lijst. Dit kan echt handig zijn, vooral bij het maken van een eigen lijst definities. De lijst kan dan met behulp van de gebruikersinterface worden gemaakt en vervolgens wordt de definitie op deze manier opgehaald:
    http://WebApp/[site]/_vti_bin/owssvr.dll?Cmd=ExportList&List={ListGuid}
  2. Hoe zit het met het verkrijgen van de ONET.XML (site definitie) die werd gebruikt om een ​​website te maken:
    http://WebApp/[site]/_vti_bin/owssvr.dll?Cmd=GetProjSchema
  3. En ten slotte alle veldtypen geregistreerd in SharePoint:
    http://WebApp/[site]/_vti_bin/owssvr.dll?Cmd=GetProjSchema&SiteTemplate=fldtypes

Zoals je kunt zien, zijn er een aantal praktische en interessante manieren om deze DLL te gebruiken. Ik vond het nuttig voor het ophalen van de structuur uit een SharePoint-omgeving.

Er zijn meer opdrachten, deze kun je vinden op deze blog http://msdn.microsoft.com/en-us/library/ms478653.aspx. Een aantal van deze commando’s komen van STS v2 en zullen niet meer werken in WSS 3.0.

Let op:

  1. Sommige van de querystring parameters, zoals XMLDATA zijn hoofdlettergevoelig. Als je de syntaxis hierboven volgt, moet dat geen problemen geven.
  2. Op sommige plaatsen, moet een GUID worden opgegeven. Wanneer je de GUID zelf niet weet, kan je deze gemakkelijk ophalen met behulp van de SharePoint UI.
    1. Ga naar de pagina voor lijstinstellingen
    2. Klik op Beleidsinstellingen.
    3. In de URL vind je de GUID van de lijst,