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

Ce composant formule un corps de message à l'aide d'un modèle

Pourquoi et quand exécuter cette tâche

Ce scénario vous présente comment utiliser le composant cTextTemplate pour rédiger un corps de message dans une Route.

Déposer et relier les composants

Procédure

  1. Depuis la Palette, glissez-déposez un cTimer, un cSetHeader, un cMulticast, deux cDirect, deux cTextTemplate et deux cLog dans l'espace de modélisation graphique.
  2. Reliez les composants à l'aide d'un lien Row > Route, comme ci-dessous.

Configurer les composants

Procédure

  1. Double-cliquez sur le cTimer pour ouvrir sa vue Basic settings dans l'onglet Component.
  2. Dans le champ Repeat, saisissez 2 pour générer deux échanges de messages. Laissez les paramètres par défaut pour les autres options.
  3. Double-cliquez sur le cSetHeader pour ouvrir sa vue Basic settings dans l'onglet Component.
  4. Dans la zone New headers to set, cliquez trois fois sur le bouton [+] pour ajouter trois en-têtes dans la table Headers et donnez-leur un nom et une valeur.
    Nommez le premier en-tête "username". Sélectionnez Bean dans la liste Language et saisissez la valeur routines.TalendDataGenerator.class, "getFirstName" dans le champ correspondant, afin de générer un prénom aléatoire pour l'en-tête.
    Nommez le deuxième en-tête "vip". Sélectionnez Simple dans la liste Language et saisissez la valeur "${exchangeProperty.CamelTimerCounter} == 1", Boolean.class dans le champ correspondant, afin de configurer l'en-tête comme true (vrai) si le compte est égal à 1.
    Nommez le troisième en-tête "today". Sélectionnez Simple dans la liste Language et saisissez la valeur "${date:now:yyyy-MM-dd}" dans le champ correspondant afin de générer la date courante comme en-tête.
  5. Double-cliquez sur le cMulticast pour afficher sa vue Basic settings dans l'onglet Component.
  6. Cliquez deux fois sur [+] pour ajouter deux lignes au tableau URIS. Spécifiez les URI des endpoints vers lesquels envoyer le message, "direct:velocity-build-in" et "direct:freemarker-repo" dans ce scénario.
  7. Double-cliquez sur le premier cDirect pour afficher sa vue Basic settings dans l'onglet Component.
  8. Saisissez l'URI de l'endpoint "velocity-build-in" dans le champ Name.
    Répétez cette étape pour configurer le nom (Name) pour le second composant cDirect à "freemarker-repo".
  9. Double-cliquez sur le premier cTextTemplate pour afficher sa vue Basic settings dans l'onglet Component.
  10. Sélectionnez Velocity dans la liste Template Engine.
    Sélectionnez Built-in dans la liste Type.
    Saisissez le code suivant dans la zone Template :
    "
    Hello $headers.userName,
    
    Today is $headers.today
    #if($headers.vip)
    
    You're a VIP member!
    #end
    "
  11. Double-cliquez sur le second cTextTemplate pour afficher sa vue Basic settings dans l'onglet Component.
  12. Sélectionnez FreeMarker dans la liste Template Engine.
    Sélectionnez Repository dans la liste déroulante Type.
    Cliquez sur [...] près du champ Resource et sélectionnez le modèle prédéfini message.ftl dans le dossier Resources > template du référentiel.
    Hello ${headers.userName},
    
    Today is ${.now?string("yyyy-MM-dd")}.
    <#if headers.vip?? && headers.vip>
    
    You're a VIP member!
    </#if>
  13. Double-cliquez sur le premier cLog pour ouvrir sa vue Basic settings dans l'onglet Component.
  14. Sélectionnez l'option Specify output log message et saisissez le code "${body}" dans le champ Message pour afficher le corps du message.
    Répétez cette étape pour configurer le second cLog de la même manière.
  15. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et exécuter la Route

Procédure

  1. Cliquez sur l'onglet Code au bas de l'espace de modélisation graphique afin de visualiser le code généré.

    Comme affiché ci-dessus, le message source est routé du cTimer_1 vers direct:velocity-build-in et direct:freemarker-repo via le cMulticast_1. Le message depuis direct:velocity-build-in est routé vers le cLog_1 et le message depuis direct:freemarker-repo est routé vers le cLog_2.

  2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'exécution de votre Route. Vous pouvez également appuyer sur F6 pour l'exécuter.
    Le corps du message est généré comme spécifié dans le modèle.

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 – faites-le-nous savoir.