tSOAP - 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

Propriétés du tSOAP

Famille de composant

Internet

 

Fonction

Le composant tSOAP envoie le message SOAP défini avec les paramètres donnés au service Web invoqué et retourne la valeur comme définie, à partir des paramètres donnés.

Objectif

Ce composant appelle une méthode via un service Web afin de récupérer les valeurs des paramètres définies dans l'éditeur du composant.

Basic settings

Schema et Edit schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant.

Ce composant utilise toujours un schéma local (built-in) en lecture seule qui contient par défaut trois colonnes de type String :

- Header : stocke l'en-tête du message SOAP de la réponse donnée côté serveur.

- Body : stocke le corps du message SOAP de la réponse donnée côté serveur.

- Fault : stocke les informations d'erreur lorsqu'une erreur survient pendant le traitement du message SOAP.

Cliquez sur Edit Schema pour visualiser le schéma.

Avertissement

Modifier le schéma peut engendrer une perte de la structure du schéma et donc un échec du composant.

 

Use NTLM

Cochez cette case si vous utilisez un protocole d'authentification NTLM.

Domain : Nom de domaine du client.

 

Need authentication

Cochez la case d'authentification et renseignez le nom de l'utilisateur dans le champ Username et son mot de passe dans le champ Password, si cela est nécessaire pour accéder au service.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

 

Use http proxy

Cochez cette case si vous vous connectez derrière un proxy et renseignez les informations correspondantes.

 

Trust server with SSL

Cochez cette case pour authentifier le serveur auprès du client via un protocole SSL et renseignez les champs correspondants.

TrustStore file : saisissez le chemin d'accès et le nom du fichier TrustStore contenant la liste des certificats approuvés par le client.

TrustStore password : saisissez le mot de passe utilisé pour vérifier l'intégrité des données TrustStore.

 

ENDPOINT

Saisissez l'URL du serveur Web invoqué.

 

SOAP action

Saisissez l'URL de l'en-tête HTTP SOAPAction à utiliser pour identifier le but de la requête HTTP SOAP.

 

SOAP version

Sélectionnez la version du système SOAP que vous utilisez.

Avertissement

L'enveloppe SOAP requise varie selon les versions.

 Use a message from the input schema

Cochez cette case pour lire un message SOAP du composant précédent et l'envoyer au service Web invoqué.

Lorsque cette case est cochée, le champ SOAP message devient une liste déroulante, vous permettant de sélectionner le type de colonne Document afin de lire un fichier d'entrée XML.

Avertissement

Il est logique d'utiliser cette option lorsque le composant tSOAP est relié à un composant d'entrée dont le schéma contient une colonne de type Document afin de lire un message SOAP valide.

 Output in Document

Cochez cette case afin d'écrire le message de réponse au format XML.

 

SOAP message

Saisissez le message SOAP à envoyer au service Web invoqué. Les variables globales et de contexte peuvent être utilisées lorsque vous écrivez un message SOAP.

Pour plus d'informations concernant les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Advanced settings

Use Kerberos

Cochez cette case pour sélectionner un composant tSetKerberosConfiguration dans la liste Kerberos configuration.

Note

Le lien Trigger > OnSubjobOk du composant tSetKerberosConfiguration doit être utilisé lors d'une connexion au tSOAP.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du Job ainsi qu'au niveau de chaque composant.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant peut être utilisé en tant que composant d'entrée ou intermédiaire.

Connections

Liens de sortie (de composant à un autre) :

Row : Main, Iterate.

Trigger : Run if, On Component Ok, On Component Error.

Liens d'entrée (d'un autre composant à celui-ci) :

Row : Main, Iterate

Trigger : Run if, On Component Ok, On Component Error.

Pour plus d'informations concernant les connexions, consultez le Guide utilisateur du Studio Talend.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario : Récupérer le nom d'un pays en utilisant un Service Web

Ce scénario décrit un Job à deux composants utilisant un Service Web pour récupérer le nom d'un pays à partir d'un code pays.

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : tSOAP et tLogRow.

  2. Cliquez-droit sur le composant tSOAP afin d'ouvrir le menu contextuel. Sélectionnez Row > Main et cliquez sur le tLogRow pour relier les composants à l'aide d'un lien Row > Main.

  3. Double-cliquez sur le tSOAP afin d'ouvrir sa vue Basic settings et définir ses propriétés.

  4. Dans le champ ENDPOINT, saisissez ou collez l'URL du Service Web à utiliser, entre guillemets : "http://www.webservicex.net/country.asmx".

  5. Dans le champ SOAP Action, saisissez ou collez l'URL de l'en-tête HTTP SOAPAction permettant de déterminer que vous souhaitez récupérer les informations concernant le nom du pays : http://www.webserviceX.NET/GetCountryByCountryCode.

    Note

    Vous pouvez voir cette adresse en regardant le WSDL du Service Web que vous appelez. Pour le Service Web de cet exemple, dans votre navigateur, saisissez ?wsdl à la fin de l'URL du Service Web utilisé dans le champ ENDPOINT, ouvrez la page Web correspondante, puis regardez l'action SOAPAction définie sous le nœud Operation :

    <wsdl:operation name="GetCountryByCountryCode">
    <soap:operation style="document"  soapAction="http://www.webserviceX.NET/GetCountryByCountryCode"/>

  6. Dans le champ SOAP version, sélectionnez la version du système SOAP utilisé. Dans ce scénario, la version est SOAP 1.1.

  7. Dans le champ SOAP message, saisissez le message, au format XML, utilisé pour récupérer les informations de pays du Service Web invoqué. Dans cet exemple, IS est utilisé comme code pays, le message est donc :

    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://www.webserviceX.NET\">
       <soapenv:Header/>
       <soapenv:Body>
          <web:GetCountryByCountryCode>
             <!--Optional:-->
             <web:CountryCode>IS</web:CountryCode>
          </web:GetCountryByCountryCode>
       </soapenv:Body>
    </soapenv:Envelope>"

  8. Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.

Le nom du pays est récupéré et affiché dans la console de la vue Run à partir du code pays IS.

Scénario 2 : Utiliser un message SOAP depuis un fichier XML pour obtenir le nom d'un pays et le sauvegarder dans un fichier XML

Ce scénario décrit un Job à trois composants utilisant un message SOAP d'un fichier d'entrée XML afin d'invoquer un service Web. Il permet également récupérer le nom d'un pays correspondant à un code pays donné, dans cet exemple, IR, puis d'écrire la réponse dans un fichier XML.

Déposer et relier les composants

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFileInputXML, un tSOAP et un tFileOutputXML.

  2. Connectez les composants à l'aide de liens Main > Row.

Configurer le composant d'entrée

  1. Double-cliquez sur le composant tFileInputXML pour ouvrir sa vue Basic settings et configurer ses propriétés.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir la boîte de dialogue [Schema].

  3. Cliquez sur le bouton [+] pour ajouter une colonne et nommez-la getCountryName dans ce scénario. Sélectionnez le type Document dans la liste Type, puis cliquez sur OK pour fermer la boîte de dialogue.

  4. Dans le champ File name/Stream, saisissez le chemin d'accès au fichier d'entrée XML contenant le message SOAP à utiliser, ou parcourez votre système jusqu'à ce fichier en cliquant sur le bouton [...].

    Le fichier d'entrée contient le message SOAP suivant. Vous pouvez constater que le code pays donné est IR.

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET">
        <soapenv:Header/>
        <soapenv:Body>
            <web:GetCountryByCountryCode>
                <web:CountryCode>IR</web:CountryCode>
            </web:GetCountryByCountryCode>
        </soapenv:Body>
    </soapenv:Envelope>
  5. Dans le champ Loop XPath query, saisissez "/" afin de définir l'élément racine comme nœud de boucle de la structure du fichier d'entrée.

  6. Dans la table Mapping, renseignez la colonne XPath query en saisissant "." pour extraire toutes les données du nœud contexte de la source. Cochez la case Get Nodes pour construire un flux de données de type Document.

Configurer le service Web à l'aide du tSOAP

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

  2. Dans le champ ENDPOINT, saisissez ou collez l'URL du service Web à utiliser, entre guillemets : "http://www.webservicex.net/country.asmx".

  3. Dans le champ SOAP Action, saisissez ou collez l'URL de l'en-tête HTTP SOAPAction indiquant que vous souhaitez récupérer les informations du pays : http://www.webserviceX.NET/GetCountryByCountryCode.

  4. Cochez la case Use a message from the input schema et sélectionnez une colonne de type Document dans la liste SOAP Message afin de lire le message SOAP du fichier d'entrée et de l'envoyer au service Web. Dans cet exemple, le schéma d'entrée possède une seule colonne, getCountryName.

  5. Cochez la case Output in Document pour écrire en sortie le message de réponse au format XML.

Configurer le composant de sortie

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

  2. Dans le champ File Name, saisissez le chemin d'accès au fichier XML de sortie.

  3. Cochez la case Incoming record is a document afin de récupérer le flux de données entrant en tant que document XML. Notez qu'une liste Column list apparaît, vous permettant de sélectionner une colonne de laquelle récupérer les données. Dans cet exemple, le schéma contient une seule colonne.

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur la touche F6 ou cliquez sur le bouton Run dans l'onglet Run pour exécuter le Job.

    Les informations concernant le pays correspondant au code pays IR sont retournées et sauvegardées dans le fichier XML défini.