11 décembre 2007

Reporting Services: Interrogation de listes Sharepoint

Intégrer des rapports SSRS dans MOSS ou WSS, c'est facile... Interroger du contenu Sharepoint depuis un rapport SSRS, c'est une autre histoire. Etrange d'ailleurs que MS ne propose pas de connecteur permettant de le faire nativement.
Le truc consiste donc à interroger les webservices mis à disposition par Sharepoint pour arriver au résultat escompté.

Voici donc la marche à suivre:

    Dans la source de données, utiliser le connecteur XML en précisant l'URL d'accès au Webservice Lists.asmx de votre serveur Sharepoint.

Dans les informations d'identifications, seules les options utiliser l'authentification Windows et Ne pas demander les informations d'identification sont utilisables. Il convient donc de s'assurer que l'utilisateur qui exécute le rapport dispose des droits nécessaires pour interroger le contenu Sharepoint.

Voyons en premier lieu comment créer un dataset basé sur cette source de données qui interroge la méthode GetListCollection. Cette dernière permet de lister les bibliothèques de documents disponibles.
<Query>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetListCollection" />
</Query>

Pour obtenir le détail du contenu d'une de ces listes, c'est la méthode GetListItems qu'il faut interroger. Celle-ci prend en entrée les paramètres listName (guid ou nom d'une liste) et viewName (guid d'une vue, vue par défaut si null).

<Query>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems"/>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
<Parameters>
<Parameter Name="listName">
<DefaultValue>/</DefaultValue>
</Parameter>
<Parameter Name="viewName">
<DefaultValue>/</DefaultValue>
</Parameter>
</Parameters>
</Query>

Ne pas oublier de créer les deux paramètres correspondant dans le dataset. Si ceux-ci n'existent pas, la requête ne fonctionnera pas.

On peut maintenant tester l'exécution de la requête. On commence par renseigner les valeurs des paramètres.

Et voilà le résultat!


Aucun commentaire: