Scénario : Modifier une variable lors de l'exécution d'un Job

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for Data Quality
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Le scénario suivant se présente sous la forme de deux Jobs père et fils. Il permet grâce au tSetEnv de transférer et de modifier dans un Job fils une valeur créée dans un Job parent. Dans le cadre de ce Job, les composants tMsgBox sont utilisés pour afficher à titre informatif qu'une variable est correctement appliquée, via une fenêtre pop-up.

Pour modifier la valeur du Job père en utilisant une variable créée par le tSetEnv dans le Job fils, procédez comme décrit dans les sections suivantes :

Déposer et relier les composants

  1. Créez un premier Job appelé parentJob : cliquez-droit sur l'onglet Job Design du Repository, puis sélectionnez Create Job.

  2. A partir de la Palette, glissez-déposez un composant tSetEnv, deux composants tMsgBox et un tRunJob dans l'espace de modélisation graphique.

  3. Connectez le tSetEnv à un premier tMsgBox à l'aide d'un lien OnSubjobOk : cliquez-droit sur le composant de départ, sélectionnez Trigger, puis OnSubjobOk, puis cliquez sur le composant à relier.

  4. Connectez le premier tMsgBox au tRunJob également à l'aide d'un lien OnSubjobOk.

  5. Connectez ensuite le tRunJob au second tMsgBox également à l'aide d'un lien OnSubjobOk.

  6. Créez maintenant le Job fils, appelé ChildJob.

  7. A partir de la Palette, glissez-déposez un tSetEnv et untMsgBox.

  8. Connectez le tSetEnv au tMsgBox à l'aide d'un lien OnSubjobOk : cliquez-droit sur le composant de départ, sélectionnez Trigger, puis OnSubjobOk. Puis cliquez sur le composant à relier.

Configurer les composants

Dans cet exemple, la valeur définie dans le Job parent est transférée au Job fils. Elle y est modifiée pour prendre la valeur du Job fils et retransférée vers le Job parent.

  1. Dans le Job ParentJob, sélectionnez le tSetEnv puis cliquez sur l'onglet Component. Ajoutez une ligne de variable en cliquant sur le bouton [+] pour définir sa valeur initiale. Saisissez Variable_1 dans le champ Name et Parent job value dans le champ Value.

  2. Sélectionnez le premier tMsgBox et cliquez sur l'onglet Component. Dans le champ Message, saisissez le message qui s'affiche dans votre fenêtre pop-up et qui confirme que votre variable est bien prise en compte dans le Job. Par exemple : "Parent:"+System.getProperty("Variable_1") affiche la variable définie dans le tSetEnv (ici Parent job value).

  3. Sélectionnez le second tMsgBox et cliquez sur l'onglet Component. Dans le champ Message, saisissez à nouveau la ligne "Parent:"+System.getProperty("Variable_1"). Elle fait apparaître dans le Job parent la variable définie dans le Job fils.

  4. Sélectionnez le tRunJob et cliquez sur l'onglet Component. Dans le champ Job, saisissez le nom de votre Job fils, ici ChildJob. Cela exécute le Job fils à l'exécution du Job parent.

  5. Double-cliquez sur le tRunJob pour ouvrir le Job fils ChildJob.

  6. Sélectionnez le composant tSetEnv et cliquez sur l'onglet Component. Ajoutez une ligne de variable en cliquant sur le bouton [+] pour définir sa valeur initiale. Saisissez Variable_1 dans le champ Name et Child job value dans le champ Value.

  7. Sélectionnez ensuite le tMsgBox et cliquez sur l'onglet Component. Dans le champ Message, saisissez le message qui s'affiche dans votre fenêtre pop-up et qui confirme que votre variable est correctement prise en compte dans le Job. Par exemple, la ligne de code "Son:"+System.getProperty("Variable_1") affiche la variable définie dans le tSetEnv (ici Child job value).

  8. Enregistrez votre Job, retournez sous le Job parent, puis appuyez sur F6 pour l'exécuter.

Exécuter le Job

Trois fenêtres pop-up s'affichent l'une après l'autre :

  • Parent: Parent job value : la valeur du Job parent est Parent job value.

  • Child: Child job value : la valeur du Job fils est Child job value.

  • Parent: Child job value : la valeur du Job parent a été modifiée par la variable définie dans le tSetEnv du Job fils, puis retransférée au Job parent. La valeur du Job parent est dorénavant celle définie dans le Job fils : Child job value.