ランタイムにオペレーティングシステムを検出してファイルパスをダイナミックに設定 - Cloud - 8.0

Java custom code

Version
Cloud
8.0
Language
日本語
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 Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
データガバナンス > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
Last publication date
2024-02-28

さまざまなオペレーティングシステムでジョブを実行できるには、以下のジョブの例のように、コンテキスト変数を使ってファイルパスを設定できます。

このジョブは以下のもので構成されています:

  • コンテキスト変数を初期化して、オペレーティングシステムを検出するtJavaコンポーネント、
  • データを生成するtFixedFlowInputコンポーネント、
  • .txtファイルを生成するtFileOutputDelimitedコンポーネント。

手順

  1. DetectOSTypeDemoという名前の新しいジョブを作成して、[Palette] (パレット)からtJavaコンポーネントをワークスペースに配置します。
  2. ワークスペース上にtFixedtFlowInputtFileOutputDelimitedを配置して、[Row main] (行メイン)リンクを使って、それらを接続します。[Trigger > On Subjob Ok] (トリガー > サブジョブがOKの場合)リンクを使って、tJavaコンポーネントをtFixeFlowInputコンポーネントに接続します。
  3. tJavaコンポーネントをクリックし、その[Basic settings] (基本設定)ビューを開き、[Code] (コード)エリアに以下のコードを追加して、コンテキスト変数を初期化およびオペレーティングシステムを検出します:
    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. tFixedFlowInputコンポーネントをクリックして、[Basic settings] (基本設定)ビューを開きます。
  5. [Edit schema] (スキーマを編集)ボタンをクリックして、nameという名前の新しいカラムを追加します。[Values] (値)ボックスに、"Hello world"という値を追加して、出力データを以下のように生成します。
  6. 次の図に示すように、コンポーネントの[Context] (コンテキスト)ビューで、コンテキスト変数(String型であるfilePathという名前)を作成して、出力ファイルのパスを設定するために使われます。
  7. tFixedtFlowInputのコンポーネントビューをクリックし、次のcontext.filePathというコンテキスト変数を使って、[File Name] (ファイル名)フィールドでファイル名を設定するために使われます。
  8. ジョブを実行します。ジョブがWindowsシステムで実行される場合、データは"C:/temp/out.txt"ファイルに書き込まれます。ジョブがUnixシステムまたはLinuxシステムで実行される場合、データは"/var/temp/out.txt"ファイルに書き込まれます。