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

ESB

author
Talend Documentation Team
EnrichVersion
6.5
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 ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants ESB
Gouvernance de données > Systèmes tiers > Composants ESB
Qualité et préparation de données > Systèmes tiers > Composants ESB
EnrichPlatform
Studio Talend

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.
    Paramétrez 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.
    Remarque :

    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 la table 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 la 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 utilisateur du Studio Talend .