以下の例は、以前に定義したルーチンを使用して異なるジョブの間で値を共有する方法を示しています。
手順
-
childJob1という名前のジョブを作成し、デザインワークスペースで名前を入力するか、または[Palette] (パレット)からデザインワークスペースにドロップして、2つのコンポーネントを追加します。
- 入力データフローを生成するためのtFixedFlowInput。
- データを受け取るためのtJavaRow。このコンポーネントでは、変数に新しい値を与えるためのセッターメソッドをジョブが呼び出します。
- tFixedFlowInputコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、[Schema] (スキーマ)ダイアログボックスを開いて入力データのスキーマを定義します。この例では、スキーマには文字列型のカラムnameが1つだけあります。
-
[Mode] (モード)エリアで[Use Single Table] (単一テーブルの使用)オプションを選択し、[Values] (値)テーブルのmessageカラムで対応する値を定義します。この例では、値は"Talend"です。
注: tJavaコンポーネントがゲッターメソッドを呼び出し、戻り値を文字列変数に割り当て、変数値をコンソールに出力します。
- tJavaRowコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
-
[Code] (コード)エリアに次のコードを入力して、セッターメソッドを追加します。
MyRoutine.setValue(input_row.name);
- childJob2という名前のジョブを作成し、そのジョブ内にtJavaコンポーネントを作成します。
- tJavaコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
-
[Code] (コード)エリアに次のコードを入力して、ゲッターメソッドを追加します。
String name=MyRoutine.getValue(); System.out.println(name);