Pour permettre au Job de s'exécuter dans différents systèmes d'exploitation, vous pouvez configurer le chemin d'accès au fichier à l'aide d'une variable de contexte, comme dans le Job d'exemple suivant.
Ce Job contient :
- un composant tJava pour initialiser la variable de contexte et détecter le système d'exploitation,
- un tFixedFlowInput pour générer les données,
- un tFileOutputDelimited pour générer un fichier .txt.
Procédure
-
Créez un Job nommé DetectOSTypeDemo et glissez un tJava de la Palette dans l'espace de modélisation graphique.
-
Placez un tFixedFlowInput et un tFileOutputDelimited dans l'espace de modélisation graphique et reliez-les à l'aide d'un lien Row Main. Reliez le tJava au tFixedFlowInput à l'aide d'un lien Trigger > On Subjob Ok.
-
Cliquez sur le tJava pour ouvrir sa vue Basic setttings, ajoutez le code suivant dans la zone Code afin d'initialiser la variable de contexte et détecter le sytsème d'exploitation :
String os = System.getProperty("os.name").toLowerCase();
if(os.indexOf("win") >= 0){
context.filePath="C:/temp/out.txt";
}else { //Unix / Linux file path
context.filePath="/var/temp/out.txt";
}
-
Cliquez sur le composant tFixedFlowInput pour ouvrir sa vue Basic settings.
-
Cliquez sur le bouton Edit schema et ajoutez une colonne nommée name. Dans la zone Values, ajoutez la valeur "Hello world" afin de générer les données de sortie, comme ci-dessous :
-
Dans la vue Contexts du composant, créez une variable de contexte (nommée filePath, de type String) pour configurer le chemin d'accès au fichier de sortie, comme dans l'image ci-dessous.
-
Cliquez sur le tFixedFlowInput et configurez le nom du fichier avec la variable de contexte suivante context.filePath dans le champ File Name.
-
Exécutez le Job Si le Job est exécuté sur un système Windows, les données sont écrites dans le fichier "C:/temp/out.txt". Si le Job est exécuté sur un système Unix ou Linux, les données sont écrites dans le fichier "/var/temp/out.txt".