Procédure : appeler un service Web à l'aide de la tâche de service Web (Vidéo liée à SQL Server)

S'applique à : SQL Server 2008 Integration Services

Auteur : Douglas Laudenschlager, Microsoft Corporation

Durée : 10 min 57 s

Taille : 11,3 Mo

Type : fichier WMV

Regarder cette vidéo

Rubriques d'aide connexes :

Tâche de service Web

Résumé de la vidéo

Cette vidéo explique comment appeler un service Web à partir d'un package Integration Services en configurant un gestionnaire de connexions HTTP et la tâche de service Web. Elle décrit ensuite comment configurer une tâche XML pour lire les informations récupérées et utiliser ces informations dans le package.

Transcription de la vidéo

Bonjour. Je m'appelle Douglas Laudenschlager et je fais partie de l'équipe chargée de la documentation de Microsoft SQL Server Integration Services.

Aujourd'hui, je vais vous expliquer comment appeler un service Web à l'aide de la tâche de service Web.

Vous allez également apprendre à :

  • configurer un gestionnaire de connexions HTTP ;
  • configurer la tâche de service Web proprement dite ;
  • télécharger le fichier WSDL qui décrit le service Web ;
  • appeler une méthode Web et fournir les valeurs d'entrée attendues ;
  • lire la valeur de retour à l'aide d'une tâche XML ;
  • utiliser les résultats du service Web dans le package.

Nous voyons ici la fenêtre de Business Intelligence Development Studio ; j'ai déjà créé un projet Integration Services, ouvert le package et ajouté certains des composants dont nous avons besoin pour notre démonstration.

Avant de travailler sur notre package, examinons le service Web que nous allons utiliser. Il s'agit d'un service Web public et gratuit qui effectue des conversions monétaires. Nous allons dès maintenant copier l'URL dans le Presse-papiers parce que nous l'utiliserons dans notre package. Ce service Web expose une méthode Web unique, appelée ConversionRate, qui retourne les taux de conversion de la plupart des devises mondiales. Lorsque nous testons cette méthode en demandant le taux de conversion de la devise Dollar américain vers la devise Euro, la réponse XML obtenue est celle que notre package recevra.

Revenons à notre package. Nous devons d'abord créer certaines variables du package. Nous avons besoin d'une variable qui contiendra la réponse XML du service Web, que nous appellerons ConversionRateResponse, et d'une seconde variable qui contiendra le taux de conversion, que nous appellerons ConversionRate. Ces deux variables sont des valeurs de chaîne.

Pour être en mesure d'utiliser la tâche de service Web, nous devons à présent définir un gestionnaire de connexions HTTP qui contient l'URL du service Web. Nous ajoutons donc une nouvelle connexion HTTP et collons l'URL du service Web. Comme nous allons devoir télécharger le fichier Web Services Description Language (ou fichier WSDL) du service Web, nous ajoutons « ?wsdl » à la fin de l'URL. Enregistrons maintenant notre gestionnaire de connexions...

...et nous sommes prêts à ajouter la tâche de service Web proprement dite. Lorsque nous ouvrons l'éditeur de tâche de service Web, la première chose que nous devons faire, c'est attribuer le gestionnaire de connexions HTTP que nous venons de créer. Nous devons maintenant télécharger le fichier WSDL qui décrit les opérations que le service Web propose. Cependant, pour une raison étrange, le bouton Télécharger WSDL (Download WSDL) est désactivé dans l'éditeur de tâche de service Web tant que vous n'avez pas sélectionné un fichier local sur votre ordinateur. Pour répondre à cette exigence, nous allons donc créer un document texte vide et le nommer CurrencyConvertor.wsdl. Nous sélectionnons ensuite le fichier que nous venons de créer et nous modifions la valeur de la propriété OverwriteWSDLFile en remplaçant False par True. Nous pouvons maintenant télécharger sans problème le fichier WSDL.

Accédons maintenant à la page Entrée (Input) de l'éditeur. Grâce au fichier WSDL, la tâche dispose de toutes les informations nécessaires sur le service Web. Nous pouvons sélectionner le service Web, sélectionner sa méthode Web ConversionRate et configurer l'appel de la méthode Web pour demander le taux de conversion de la devise Dollar américain vers la devise Euro.

Passons maintenant à la page Sortie (Output) de l'éditeur. Nous ne voulons pas enregistrer la sortie dans un fichier, mais dans une variable (la variable que nous avons appelée ConversionRateResponse). Nous enregistrons maintenant notre tâche de service Web.

La réponse que notre tâche va recevoir est le document XML que nous avons vu lors du test en ligne du service Web. Nous devons extraire de ce document le taux de conversion. Pour ce faire, nous allons utiliser une tâche XML.

Comme la tâche XML permet d'effectuer un grand nombre d'opérations sur les documents XML, nous devons configurer de nombreuses propriétés avant de l'utiliser. Le premier élément à sélectionner (bien qu'il ne s'agisse pas du premier de la liste) est l'opération que nous voulons effectuer : nous souhaitons effectuer une requête XPATH sur le document XML. Notre source XML est contenue dans la variable que nous avons appelée ConversionRateResponse. Nous voulons enregistrer le résultat de notre requête, nous voulons l'enregistrer dans une variable (la variable que nous avons appelée ConversionRate) et nous voulons remplacer la valeur existante par la valeur actuelle. Nous allons taper directement notre requête XPATH, et rechercher le nœud « /double » qui contient le taux de conversion. L'opération XPATH que nous effectuons doit extraire des Values. Enregistrons à présent notre tâche XML.

Je vais vous présenter une technique utile qui permet de vérifier les valeurs des variables du package pendant l'exécution de votre package. Nous allons donc définir un point d'arrêt sur l'événement OnPostExecute de la tâche XML et exécuter notre package.

[pause]

L'exécution du package s'est interrompue au niveau du point d'arrêt que nous avons défini, et nous pouvons cliquer ici sur la fenêtre Variables locales (Locals) pour passer en revue les valeurs actuelles de toutes les variables du package. Si nous faisons défiler la liste, nous voyons dans ConversionRateResponse la chaîne XML de type Long attendue, et dans ConversionRate, la valeur de taux extraite. Si nous voulons faire figurer ces deux variables dans une liste plus lisible, nous pouvons utiliser la commande Add Watch pour les ajouter à la fenêtre Espion (Watch) indépendante.

À présent, exécutons intégralement notre tâche, arrêtons le débogage et supprimons le point d'arrêt que nous avons défini.

À ce stade, nous sommes prêts à créer une connexion et à réactiver la tâche de flux de données que j'ai déjà commencé à configurer.

Nous allons tout d'abord utiliser une source OLE DB pour extraire des données d'une vue dans l'exemple de base de données AdventureWorks. Nous allons obtenir le nom de chaque commercial (LastName) et le montant du cumul annuel de ses ventes (SalesYTD) en dollars américains.

Ensuite, nous allons utiliser le taux de conversion que nous avons obtenu du service Web pour ajouter une NOUVELLE colonne qui convertit le montant du cumul annuel des ventes en euros. Pour ajouter une nouvelle colonne, nous utilisons une transformation de colonne dérivée. Nous allons nommer notre nouvelle colonne SalesYTDEuro, puis nous indiquons qu'elle contiendra les valeurs de la colonne SalesYTD multipliées par le taux de conversion que nous avons obtenu de notre service Web. En premier lieu, nous devons convertir le taux de conversion, qui est une chaîne, en un type de données numérique approprié. Nous allons ensuite utiliser la fonction ROUND pour que le résultat de notre expression soit une valeur à deux décimales, et enregistrer notre transformation de colonne dérivée.

Comme nous ne voulons pas enregistrer notre exemple de données, nous allons utiliser une transformation de calcul du nombre de lignes pour terminer le flux de données. Cette fenêtre est très pratique, et la seule obligation est d'assigner la valeur de nombre de lignes à une variable du package, mais vous pouvez l'ignorer.

Ajoutons à présent une visionneuse de données à notre flux de données pour pouvoir visualiser les résultats de notre travail pendant l'exécution du package. Nous allons accepter le format Grille par défaut et exécuter notre package achevé.

[pause]

Au bout de quelques instants, nous constatons que tout s'est déroulé comme prévu. Nous pouvons en effet voir une nouvelle colonne contenant les montants cumulés des ventes convertis en euros, grâce au taux de conversion que nous avons obtenu du service Web en utilisant la tâche de service Web et la tâche XML.

Dans cette vidéo, vous avez appris à appeler un service Web en utilisant la tâche de service Web.

Vous avez également appris à :

  • configurer un gestionnaire de connexions HTTP ;
  • configurer la tâche de service Web proprement dite ;
  • télécharger le fichier WSDL qui décrit le service Web ;
  • appeler une méthode Web et fournir les valeurs d'entrée attendues ;
  • lire la valeur de retour à l'aide d'une tâche XML ;
  • utiliser les résultats du service Web dans le package.

Nous espérons que cette vidéo vous a permis d'acquérir de nouvelles connaissances ainsi que des compétences qui vous seront utiles. Une fois que vous aurez fermé cette vidéo et que vous reviendrez à la page Web, vous aurez la possibilité de regarder d'autres vidéos liées à Integration Services. Merci.