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