Scénario 2 : Utiliser le tEBSConsumer avec des en-têtes SOAP personnalisés - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario est similaire au précédent. Le Job utilise un tESBConsumer pour récupérer une adresse e-mail valide ainsi que des en-têtes personnalisés SOAP dans le message de requête.

Déposer et relier les composants

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

  2. Reliez les composants tFixedFlowInput au tXMLMap à l'aide d'un lien Row > Main.

  3. Cliquez-droit sur le premier tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le tMap. Saisissez payloaddans la boîte de dialogue qui s'ouvre, pour nommer cette connexion.

    Répétez l'opération pour relier un autre tXMLMap au tMap et nommez le lien de sortie header.

  4. Cliquez-droit sur le composant tMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le composant tESBConsumer. Saisissez request dans la boîte de dialogue qui s'ouvre, afin de nommer cette ligne et acceptez la propagation proposée afin d'obtenir le schéma du tESBConsumer.

  5. Cliquez-droit sur le tESBConsumer, sélectionnez Row > Response dans le menu contextuel et cliquez sur le troisième tXMLMap.

  6. Cliquez-droit sur le troisième tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le premier tLogRow. Saisissez response dans la boîte de dialogue qui s'ouvre, afin de renommer cette connexion.

  7. Cliquez-droit sur le tESBConsumer à nouveau, sélectionnez Row > Fault dans le menu contextuel puis cliquez sur l'autre 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 composant 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 et cliquez sur le bouton de rafraîchissement, pour récupérer le nom du port et de l'opération. Dans la liste Port Name, sélectionnez le port à utiliser, ValidateEmailSoap dans cet exemple. Cliquez sur OK afin de valider les paramètres et de fermer la boîte de dialogue.

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

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

  4. Dans la vue Advanced settings, cochez la case Log messages pour enregistrer le contenu des messages.

Configurer les composants tFixedFlowInput

  1. Double-cliquez sur le premier 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 afficher la boîte de dialogue Repository Content. Sélectionnez la métadonnée sous le nœud IsValidEmail pour l'utiliser en tant que 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 aller à l'étape suivante.

  3. Pour les utilisateurs du Studio Talend sans ESB, le schéma doit être créé 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, paramétrez le nombre de lignes à 1.

  5. Dans la zone Mode, sélectionnez Use Single Table et saisissez "nomatter@gmail.com" dans le champ Value, le payload du message de requête.

  6. Configurer le second tFixedFlowInput de la même façon, mais créez un schéma différent.

    Dans le schéma, ajoutez deux lignes de type String et nommez-les id et company, respectivement.

    Donnez la valeur Hello world! à la colonne id et Talend à la colonne company, qui sont les en-têtes du message de requête.

Configurer les composants tXMLMap du 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 premier 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 s'ouvre.

  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 s'ouvre.

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

  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 dans la table d'entrée et déposez-le dans la colonne Expression de la ligne de nœud Email, dans la table de sortie.

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

  8. Configurez de la même façon l'autre tXMLMap. Ajoutez une ligne de type Document à la table de sortie et nommez-la header. Créez-lui deux sous-éléments, id et company. Mappez les nœuds id et company de la table d'entrée avec les nœuds correspondants dans la table de sortie.

Configurer le composant tMap

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

  2. Dans la partie inférieure droite de l'éditeur, cliquez sur le bouton [+] pour ajouter deux lignes de type Document à la table de sortie et nommez-les respectivement payload et headers.

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

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

Configurer le tXMLMap du 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 Map Editor.

  2. Dans la table d'entrée, cliquez-droit sur le nœud 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 à nouveau et sélectionnez Create Sub-Element dans le menu contextuel. Saisissez 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 le bouton [+] 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 dans la colonne Expression, dans la ligne du nœud response de la table de sortie.

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

Les composants tLogRow monitorent les échanges des messages de réponse et d'erreur et ne nécessitent pas de configuration. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job.

Exécuter le Job

Cliquez sur l'onglet Run pour afficher la vue du même nom. Cliquez sur le bouton Run pour lancer l'exécution de votre Job. Vous pouvez également appuyer sur F6 pour l'exécuter.

Comme affiché dans le log d'exécution, l'adresse e-mail nomatter@gmail.com est retournée comme false. Les messages d'entrée et de sortie XML sont également affichés dans la console. L'en-tête SOAP est passé au service, dans la requête.