tWaitForFile - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Propriétés du tWaitForFile

Famille de composant

Orchestration

 

Fonction

Le composant tWaitForFile fait une boucle sur un répertoire donné et déclenche le composant suivant lorsque la condition définie est rencontrée.

Objectif

Ce composant est utilisé pour mettre en attente le composant lié. Il déclenche ce composant lorsque l'opération sur le fichier défini est effectuée dans le répertoire spécifié.

Basic settings

Time (in seconds) between iterations

Paramétrez l'intervalle de temps entre deux itérations (en secondes).

 

Max. number of iterations (infinite loop if empty)

Configurez le nombre maximal d'itérations à effectuer sur le répertoire spécifié.

 

Directory to scan

Spécifiez le répertoire sur lequel effectuer des itérations.

 

File mask

Saisissez le masque du fichier recherché afin de filtrer les fichiers à monitorer. Pour monitorer un fichier, saisissez son nom.

 

Include subdirectories

Cochez cette case pour inclure les sous-répertoires dans l'itération.

 

Case sensitive

Cochez cette case pour tenir compte de la casse.

 

Include present file

Cochez cette case pour inclure le fichier courant.

 

Trigger action when

Sélectionnez l'une des conditions de déclenchement :

a file is created : déclenche le composant suivant lorsqu'un fichier est créé.

a file is deleted : déclenche le composant suivant lorsqu'un fichier est supprimé.

a file is updated : déclenche le composant suivant lorsqu'un fichier est modifié.

a file is created or updated or deleted : déclenche le composant suivant lorsqu'un fichier est créé, supprimé ou modifié.

 

Then

Sélectionnez l'action à effectuer avec la boucle itérative après déclenchement du composant suivant :

- continue loop : continuer l'itération jusqu'à ce que le nombre maximum d'itérations soit atteint.

- exit loop : arrêter l'itération immédiatement.

 

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. Le schéma de ce composant est local (built-in) et ne peut être modifié.

Advanced settings

Wait for file to be released Every (in ms)

Cochez cette case afin que le composant suivant ne se déclenche qu'après la fin de l'opération.

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.

CURRENT_ITERATION : numéro de séquence de l'itération courante. Cette variable est une variable Flow et retourne un entier.

PRESENT_FILE : nom et chemin d'accès au fichier. Cette variable est une variable Flow et retourne une chaîne de caractères.

DELETED_FILE : nom et chemin d'accès au fichier supprimé. Cette variable est une variable Flow et retourne une chaîne de caractères.

CREATED_FILE : nom et chemin d'accès au fichier créé. Cette variable est une variable Flow et retourne une chaîne de caractères.

UPDATED_FILE : nom et chemin d'accès au fichier mis à jour. Cette variable est une variable Flow et retourne une chaîne de caractères.

FILENAME : nom du fichier traité. Cette variable est une variable Flow et retourne une chaîne de caractères.

NOT_UPDATED_FILE : nom et chemin d'accès au fichier n'ayant pas été mis à jour. Cette variable est une variable Flow et retourne une chaîne de caractères.

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 est un composant de déclenchement du composant suivant, en fonction de la condition établie. Ainsi, ce composant doit être connecté à un autre composant.

Connections

 

Liens de sortie (de ce composant à un autre) :

Row : Main, Iterate.

Trigger : OnSubjobOk, Run if, OnComponentOk, OnComponentError.

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

Row : Iterate.

Trigger : OnSubjobOk, Run if, OnComponentOk, OnComponentError, Synchronize, Parallelize.

Pour plus d'informations concernant les liens, 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 1 : Attendre la création d'un fichier et arrêter l'itération après le déclenchement d'un message

Ce scénario décrit un Job scannant un répertoire et déclenchant un message affichant dans la console les informations de création d'un fichier lorsqu'un fichier texte est créé dans ce répertoire. Le scan prend fin et un autre message affiche le nombre d'itérations terminées.

Construire le Job

  1. Glissez-déposez trois composants de la Palette dans l'espace de modélisation graphique : un tWaitForFile et deux composants tJava.

  2. Reliez le tWaitForFile au premier tJava à l'aide d'un lien Row > Iterate.

  3. Reliez le tWaitForFile au second tJava à l'aide d'un lien Trigger > On Subjob Ok.

Configurer les composants

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

  2. Dans le champ Directory to scan, saisissez le nom du répertoire à scanner.

  3. Dans le champ File mask, saisissez "*.txt" pour scanner uniquement les fichiers texte.

  4. Dans la liste déroulante Trigger action when, sélectionnez a file is created afin de déclencher le premier tJava lorsqu'un fichier texte est créé.

  5. Dans la liste déroulante Then, sélectionnez exit loop afin d'arrêter la boucle itérative dès que le premier tJava a été déclenché.

  6. Double-cliquez sur le premier tJava pour ouvrir sa vue Basic settings.

  7. Dans le champ Code, saisissez le code suivant :

    System.out.println("A file was created at " + TalendDate.getCurrentDate());
    System.out.println("Name of the created file: " + ((String)globalMap.get("tWaitForFile_1_CREATED_FILE")));
  8. Double-cliquez sur le second tJava pour ouvrir sa vue Basic settings.

  9. Dans le champ code, saisissez le code suivant :

    System.out.println("\r\nIteration loop ended at " + TalendDate.getCurrentDate());
    System.out.println("Number of iterations finished: " +  ((Integer)globalMap.get("tWaitForFile_1_CURRENT_ITERATION")));

Sauvegarder et exécuter le Job

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

  2. Appuyez sur F6 pour exécuter le Job.

  3. Créez un fichier texte exit.txt dans le répertoire spécifié.

    Lorsqu'un fichier texte est créé, un message concernant la création du fichier apparaît dans la console de la vue Run. L'itération se termine immédiatement et est suivie d'un autre message affichant l'heure de fin de la boucle itérative et le nombre d'itérations effectuées.

Scénario 2 : Attendre la création d'un fichier et poursuivre l'itération après le déclenchement d'un message

Basé sur le scénario précédent, ce scénario décrit un Job déclenchant un message dans la console ainsi que la création d'un fichier texte dans le répertoire scanné, sans arrêter le processus de scan immédiatement. Le Job continue à scanner le répertoire jusqu'à ce que le nombre d'itérations atteigne la valeur maximale définie.

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

  2. Dans le champ Time (in seconds) between iterations, saisissez l'intervalle de temps en secondes entre deux itérations. Dans cet exemple, saisissez 5.

  3. Dans le champ Max. number of iterations (infinite loop if empty), saisissez le nombre maximal d'itérations. Dans cet exemple, saisissez 10.

  4. Dans la liste Then, sélectionnez continue loop afin de continuer la boucle itérative, même après déclenchement du message.

  5. Appuyez sur les touches Ctrl+S afin de sauvegarder le Job.

  6. Appuyez sur F6 pour exécuter le Job.

  7. Créez un fichier texte continue.txt dans le répertoire spécifié.

    Lorsqu'un fichier texte est créé, un message concernant la création du fichier est affiché dans la console de la vue Run. La boucle itérative est arrêtée jusqu'à ce que le nombre d'itérations atteigne dix. Un nouveau message s'affiche et indique l'heure de fin de la boucle itérative et le nombre d'itérations effectuées.