Détecter le système d'exploitation lors de l'exécution et configurer dynamiquement le chemin d'accès au fichier - 7.3

Code Java personnalisé

Version
7.3
Language
Français (France)
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
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 Data Quality
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java
Gouvernance de données > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java
Qualité et préparation de données > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java

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

  1. Créez un Job nommé DetectOSTypeDemo et glissez un tJava de la Palette dans l'espace de modélisation graphique.
  2. 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.
  3. 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";
    }
  4. Cliquez sur le composant tFixedFlowInput pour ouvrir sa vue Basic settings.
  5. 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 :
  6. 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.
  7. Cliquez sur le tFixedFlowInput et configurez le nom du fichier avec la variable de contexte suivante context.filePath dans le champ File Name.
  8. 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".