Accéder au contenu principal Passer au contenu complémentaire

Configurer la manière dont sont traitées les requêtes

Procédure

  1. Double-cliquez sur le tMysqlInput pour afficher sa vue Basic settings.
  2. Renseignez les propriétés de base de la connexion MySQL et de la table de base de données.
    Cliquez sur le bouton [...] pour ouvrir l'éditeur de schéma.
  3. Cliquez deux fois sur le bouton [+] pour ajouter deux colonnes de type String. Nommez-les respectivement id et name.
    Cliquez sur OK pour fermer l'éditeur.
    Cliquez sur Guess Query pour récupérer la requête SQL.
  4. Double-cliquez sur le tXMLMap pour ouvrir l'éditeur de mapping.
  5. Dans la table main : row1 du côté de l'entrée (gauche), cliquez-droit sur le nom de la colonne payload et, dans le menu contextuel, sélectionnez Import from Repository. L'assistant Metadata s'ouvre.
    Sélectionnez le schéma du message de requête et cliquez sur OK pour valider la sélection. Dans cet exemple, le schéma est getAirportInformationByISOCountryCode.
  6. Répétez l'opération pour importer le schéma hiérarchique pour les messages Response/Fault (droite). Dans cet exemple, les schémas sont respectivement getAirportInformationByISOCountryCodeResponse et getAirportInformationByISOCountryCodeFault.
  7. Pour créer la jointure sur les données de référence, déposez le nœud CountryAbbrviation de la table principale sur la ligne id de la table de référence (lookup).
  8. Dans la table de référence, cliquez sur l'icône de clé anglaise, dans le coin supérieur droit, pour ouvrir le panneau des paramètres.
    Configurez Lookup Model à Reload at each row, Match Model à All matches et Join Model à Inner join.
  9. Dans la table du flux de sortie airport_response, cliquez sur l'icône de clé anglaise, dans le coin supérieur droit, pour ouvrir le panneau des paramètres.
    Paramétrez l'option All in one à true. Cela vous assure qu'une seule réponse est retournée pour chaque requête si plusieurs aéroports correspondent dans la base de données.
  10. Dans la table de sortie fault_message, cliquez sur l'icône de clé anglaise, dans le coin supérieur droit, pour ouvrir le panneau des paramètres.
    Paramétrez l'option Catch Lookup Inner Join Reject à true pour monitorer les non-correspondances entre le code pays de la requête et les enregistrements dans la table de base de données. Lorsqu'une telle situation se produit, un message Fault est généré par le tESBConsumer et écrit en sortie par le flux Row > Fault.
    Note InformationsRemarque :

    Le flux Row > Fault du tESBConsumer contient un schéma prédéfini dont la colonne faultString contient les données du champ Fault title du tESBProviderFault.

  11. Déposez la colonne name du flux de référence dans la zone Expression dans la table de sortie airport_response, à côté du nœud tns:getAirportInformationByISOCountryCodeResult.
    Déposez le nœud tns:CountryAbbreviation du flux principal dans la zone Expression à côté du nœud tns:getAirportInformationByISOCountryCodeFaultString dans le flux de sortie fault_message. Ainsi, le code pays incorrect de la requête s'affiche dans la colonne faultDetail du flux Row > Fault du tESBConsumer.
    Cliquez sur OK pour fermer l'éditeur et valider cette configuration.
  12. Double-cliquez sur le tESBProviderFault pour afficher sa vue Basic settings.
  13. Dans le champ Fault title, saisissez la variable de contexte context.fault_message.
    Pour plus d'informations concernant la définition des variables de contexte, consultez le Guide d'utilisation du Studio Talend.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !