Définir une source de donnée WebService (SSRS)

by Nicolas Calvi 16. avril 2009 18:11

Je vais aborder ici comment faire pour définir une source de donnée de type WebService (XML) pour l'utiliser dans un rapport Reporting Services 2005. La chose se fait en deux phases.

Phase 1 : Définition de la source de donnée

Il est évident que dans ce cas, la source de donnée sera l'adresse de notre WebService, pour cela créez votre source de donnée et paramétrez là comme ceci : 

Il faut que le retour de votre WebService soit un XML ou un objet sérialisable dans ce sens. Une fois la source de donnée définie, il n'y a plus qu'à l'utiliser dans un DataSet.

Phase 2 : Définition d'un DataSet avec la source de donnée WebService

Le DataSet se défini comme normalement, on lui donne un nom, on lui donne comme source de donnée notre source de type XML. La seule chose a savoir est comment récupérer les données du WebService.

C'est dans la QueryString que l'on doit spécifier toutes ses informations, sous forme d'un XML propre à Reporting Services

Le XML (ci-bas) permet de définir la méthode su WebService à invoquer, ansi que les informations nécéssaire à la récupération des données.

<Query>
  <Method Namespace="http://tempuri.org/" Name="MaMethode"/>
  <SoapAction>http://tempuri.org/SuiviChantier</SoapAction>
  <ElementPath IgnoreNamespaces="true">
    *
  </ElementPath>
</Query>

 

Si le le WebService prend des paramètres, il suffit d'aller sur l'onglet Parameters et de les définirs. Il est alors possible de définir des paramètres en dur ou des paramètres passés au rapport.

Une fois terminé, vous n'avez plus qu'a utiliser le DataSet dans votre rapport. Mais il arrive parfois que Reporting Services ne remplisse pas automatiquement la liste des champs de binding, à ce moment vous devrez le faire à la main en ajoutant les champs un à un. Même si il ne les a pas trouvé en définissant le DataSet, cela ne l'empêchera pas de les récupérer par la suite.