親ジョブのセットアップ
手順
-
ParentJobという名前の新しいジョブを作成し、tFileInputDelimitedコンポーネント、tFlowToIterateコンポーネント、tRunJob、2つのtJavaコンポーネントを追加します。
- [Row[ (行) > [Main] (メイン)接続を使ってtFileInputDelimitedコンポーネントをtFlowToIterateコンポーネントに、[Row] (行) > [Iterate] (反復処理)接続を使ってtFlowToIterateコンポーネントを2番目のtJavaコンポーネントに、[Trigger] (トリガー) > [Run if] (条件付き実行)接続を使って2番目のtJavaコンポーネントを最初のtJavaコンポーネントに、[Trigger] (トリガー) > [Run if] (条件付き実行)接続を使って2番目のtJavaコンポーネントをtRunJobコンポーネントに接続します。
-
tFileInputDelimitedコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
- [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、ポップアップダイアログボックスで、文字列型のカラムJob_Nameとブール型のカラムExecuteを追加して、入力データのスキーマを定義します。完了したら、[OK]をクリックしてダイアログボックスを閉じます。
- [File name/Stream] (ファイル名/ストリーム)フレームの横にある[...]ボタンをクリックし、ファイルFile_For_Execute.txtがあるフォルダーに移動し、ファイルを選択します。
- ファイルFile_For_Execute.txtにあるフィールドを区切るために使う文字を[Field Separator] (フィールド区切り)入力します(この例では",")。
- [Header] (ヘッダー)フィールドを1に設定します。
-
2つのtJavaコンポーネント間の接続を選択します。[Component] (コンポーネント)ビューの[Condition] (条件)フィールドに次のように入力して、リジェクトされたジョブをキャッチします。
!((Boolean)globalMap.get("row1.Execute"))
-
tJava_2コンポーネントとtRunJob_1コンポーネントの間の接続を選択します。[Component] (コンポーネント)ビューの[Condition] (条件)フィールドに次のように入力して、[Execute] (実行)フィールドがtrueのジョブの実行をトリガーします。
((Boolean)globalMap.get("row1.Execute"))
-
tRunJobコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
- [Use dynamic job] (ダイナミックジョブを使用)チェックボックスをオンにして、表示された[Context job] (コンテキストジョブ)フィールドで[Ctrl] + [Space]を押し、tFlowToIterateコンポーネントによって作成された反復グローバル変数を変数のリストから選択します。この例ではtFlowToIterate_1.Job_Nameです。[Context job] (コンテキストジョブ)フィールドには((String)globalMap.get("row1.Job_Name"))が入力されます。各反復で、この変数は呼び出されるジョブの名前として解決されます。
- [Job] (ジョブ)フィールドの横にある[...]ボタンをクリックし、実行するジョブを[Select Job] (ジョブの選択)ダイアログボックスですべて選択し、[OK]をクリックしてダイアログボックスを閉じます。この例では、ChildJob1からChildJob5までのすべてです。
-
tJava_1コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。[Code] (コード)フィールドに次のように入力して、リジェクトされた子ジョブをログに記録します。
System.out.println("----------------------------------"); System.out.println("MESSAGE : " + ((String)globalMap.get("row1.Job_Name")) + " JOB hasn't been selected for execution ... "); System.out.println("----------------------------------");