Scénario 1 : Utiliser le composant tESBConsumer - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job utilisant un composant tESBConsumer pour définir si des adresses e-mail sont valides ou non.

Construire le Job

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFixedFlowInput, un tESBConsumer, deux tXMLMap et deux tLogRow.

  2. Cliquez-droit sur le composant tFixedFlowInput, sélectionnez Row > Main dans le menu contextuel et cliquez sur le premier tXMLMap.

  3. Cliquez-droit sur le composant tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le tESBConsumer. Saisissez payload dans la boîte de dialogue afin de nommer ce lien et acceptez la propagation afin de récupérer le schéma du composant tESBConsumer.

  4. Cliquez-droit sur le tESBConsumer, sélectionnez Row > Response dans le menu contextuel et cliquez sur le second tLogRow.

  5. Cliquez-droit sur le second tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le second tLogRow. Saisissez response dans la boîte de dialogue qui s'ouvre afin de nommer le lien.

  6. Cliquez-droit sur le composant tESBConsumer, sélectionnez Row > Fault dans le menu contextuel et cliquez sur le second tLogRow.

Configurer les composants

Configurer le composant tESBConsumer

Dans ce scénario, un Service Web public, disponible à l'adresse suivante http://www.webservicex.net/ValidateEmail.asmx est appelé par le composant tESBConsumer pour retourner true ou false pour une adresse e-mail. Vous pouvez voir la définition WSDL du Service à l'adresse http://www.webservicex.net/ValidateEmail.asmx?WSDL pour la description du Service.

  1. Dans l'espace de modélisation graphique, double-cliquez sur le tESBConsumer pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté de Service configuration.

  3. Dans la boîte de dialogue qui s'ouvre, saisissez : http://www.webservicex.net/ValidateEmail.asmx?WSDL dans le champ WSDL puis cliquez sur le bouton de rafraîchissement afin de récupérer le nom du port et de l'opération. Dans la liste Port Name, sélectionnez le port que vous souhaitez utiliser, ValidateEmailSoap dans cet exemple.

    Cochez la case Populate schema to repository on finish afin de récupérer la définition WSDL, qui sera utilisée par le composant tFixedFlowInput. Cette option est disponible pour les utilisateurs du Studio Talend avec ESB. Si vous n'avez pas cette option, ignorez la case. Le schéma peut être créé manuellement dans le composant tFixedFlowInput.

    Cliquez sur Finish afin de valider vos paramètres et fermer la boîte de dialogue.

  4. Cliquez sur la vue Advanced settings dans l'onglet Component.

  5. Cochez la case Log messages pour afficher le log de l'échange dans la console d'exécution.

Configurer le tFixedFlowInput

  1. Double-cliquez sur le tFixedFlowInput pour ouvrir sa vue Basic settings.

  2. Les utilisateurs du Studio Talend avec ESB ayant récupéré le schéma de la définition WSDL du Service, dans la configuration du composant tESBConsumer, sélectionnez Repository dans la liste Schema. Cliquez sur le bouton [...] à côté du champ suivant pour ouvrir la boîte de dialogue Repository Content. Sélectionnez la métadonnée sous le noeud IsValidEmail pour l'utiliser comme schéma du message d'entrée. Cliquez sur OK pour fermer la boîte de dialogue.

    Les utilisateurs du Studio Talend sans ESB, vous pouvez passer à l'étape suivante.

  3. Les utilisateurs du Studio Talend sans ESB doivent créer le schéma manuellement. Sélectionnez Built-In dans la liste Schema.

    Cliquez sur le bouton [...] à côté du champ Edit Schema. Dans la boîte de dialogue du schéma, cliquez sur le bouton [+] pour ajouter une ligne de type String et nommez-la Email. Cliquez sur OK pour fermer la boîte de dialogue.

  4. Dans le champ Number of rows, configurez le nombre de lignes à 1.

  5. Dans la zone Mode, sélectionnez Use Single Table et saisissez la requête suivante entre guillemets doubles dans le champ Value :

    nomatter@gmail.com

Configurer le tXMLMap dans le flux d'entrée

L'intégration de données Talend utilise des schémas basés sur des lignes et colonnes puisque ses racines se trouvent dans l'intégration de data warehouses relationnels. Les messages SOAP utilisent le format XML. Le XML est hiérarchique et supporte des structures plus riches que les lignes ou les colonnes. Le tXMLMap doit donc convertir la structure relationnelle ligne/colonne en schéma attendu par le Service SOAP.

  1. Dans l'espace de modélisation graphique, double-cliquez sur le composant tXMLMap pour ouvrir son éditeur Map Editor.

  2. Dans la table de sortie, cliquez-droit sur le nœud racine et sélectionnez Rename dans le menu contextuel. Saisissez IsValidEmail dans la boîte de dialogue qui apparaît.

  3. Cliquez-droit sur le nœud IsValidEmail et sélectionnez Set A Namespace dans le menu contextuel. Saisissez http://www.webservicex.net dans la boîte de dialogue qui apparaît.

  4. Cliquez-droit sur le nœud IsValidEmail à nouveau et sélectionnez Create Sub-Element. Saisissez Email dans la boîte de dialogue.

  5. Cliquez-droit sur le nœud Email et sélectionnez As loop element dans le menu contextuel.

  6. Cliquez sur le nœud Email de la table d'entrée et déposez-le dans la colonne Expression, dans la ligne du nœud Email dans la table de sortie.

  7. Cliquez sur OK pour valider le mapping et fermer l'éditeur Map Editor.

Configurer le composant tXMLMap dans le flux de sortie

Le tXMLMap du flux de sortie convertit le message de réponse du format XML en une structure ligne/colonne.

  1. Dans l'espace de modélisation graphique, double-cliquez sur le tXMLMap du flux de sortie pour ouvrir son éditeur Map Editor.

  2. Dans la table d'entrée, cliquez sur le nœud racine et sélectionnez Rename dans le menu contextuel. Saisissez IsValidEmailResponse dans la boîte de dialogue qui s'ouvre.

  3. Cliquez-droit sur le nœud IsValidEmailResponse et sélectionnez Set A Namespace dans le menu contextuel. Saisissez http://www.webservicex.net dans la boîte de dialogue qui s'ouvre.

  4. Cliquez-droit sur le nœud IsValidEmailResponse et sélectionnez Create Sub-Element dans le menu contextuel. Enter IsValidEmailResult dans la boîte de dialogue qui s'ouvre.

  5. Cliquez-droit sur le nœud IsValidEmailResult et sélectionnez As loop element dans le menu contextuel.

  6. Dans la partie inférieure droite de l'éditeur de mapping, cliquez sur [+] pour ajouter une ligne de type String à la table de sortie et nommez-la response.

  7. Cliquez sur le nœud IsValidEmailResult dans la table d'entrée et déposez-le sur la colonne Expression dans la ligne du nœud response, dans la table de sortie.

  8. Cliquez sur OK afin de valider le mapping et fermer le Map Editor.

Les tLogRow monitorent les échanges de messages de réponses et d'erreurs et ne nécessitent pas de configuration. Appuyez sur Ctrl+S pour sauvegarder votre Job.

Exécuter le Job

Cliquez sur l'onglet Run pour l'afficher et cliquez sur le bouton Run afin de lancer l'exécution du Job. Vous pouvez également appuyer sur F6 pour l'exécuter. Dans la console, vous pouvez voir :

L'adresse e-mail nomatter@gmail.com est retournée comme false. Les messages SOAP d'entrée et de sortie en XML sont également affichés dans la console.