データフロー実行時オプションを使用すると、データフロー実行時のステージの動作を制御できます。これは、実行時にデータフローの動作を変更したい場合に役立ちます。例えば、データフローの Read from DB ステージで指定されたデータベースを使用する代わりに、データフローの実行時に Read from DB ステージ用のソース データベースを指定することができます。
以下では、実行時に設定できるオプションをエクスポーズする手順について説明します。この手順を実行すると、実行時に次のような手法でデータフロー オプションを設定できるようになります。
- ジョブの場合、データフロー オプション プロパティ ファイルと Job Executor の
-o
引数を使用して実行時オプションを指定できます。
- サービスの場合、実行時オプションを API オプションとして指定できます。
- Web サービスとしてエクスポーズされたサービスの場合、実行時オプションをリクエスト内のパラメータとして指定できます。
- サブフローの場合、親データフロー タイプ (ジョブ、サービス、Web サービスとしてエクスポーズされたサービス) に応じて、実行時オプションは親データフローから継承され、上記のいずれかの方法によってエクスポーズされます。
データフローに実行時オプションを追加するには、以下の手順に従います。
-
Enterprise Designer でデータフローを開きます。
-
埋め込まれたデータフロー内のステージに対して実行時オプションを設定する場合は、埋め込まれたデータフローを開きます。
-
ツールバー上のデータフロー オプション アイコンをクリックするか、 をクリックします。[データフロー オプション] ダイアログ ボックスが表示されます。
-
[追加] をクリックします。[データフロー オプションの定義] ダイアログ ボックスが表示されます。
-
[オプション名] フィールドに、このオプションに付ける名前を入力します。このオプションを設定するには、実行時にこのオプション名を指定する必要があります。
-
[ラベル] フィールドで、別のラベルを指定できます。また、オプション名と同じラベルを使用することもできます。
-
[説明] フィールドにオプションの説明を入力します。
-
[ターゲット] フィールドで、このオプションをデータフローのすべてのステージに適用するか、特定のステージにのみ適用するかを選択します。
- 選択ステージ
- 指定するステージにのみオプションを適用する場合は、このオプションを選択します。
- すべてのステージ
- データフローのすべてのステージにオプションを適用する場合は、このオプションを選択します。
- トランスフォームを含む
- データフローの Transformer ステージの Custom Transform で実行時オプションを使用できるようにする場合は、このオプションを選択します。このオプションを選択すると、Custom Transform の Groovy スクリプトの中で、実行時に指定された値にアクセスできます。次の構文を使用します。
options.get("optionName")
例えば、casing という名前のオプションにアクセスするには、Custom Transform スクリプトに次の式を含めます。options.get("casing")
-
[ターゲット] フィールドで [選択ステージ] を選択した場合は、[データフロー オプションをステージにマッピングします] テーブルにデータフローのステージの一覧が表示されます。データフロー オプションとしてエクスポーズするオプションを選択します。最初の項目を選択すると、[デフォルト値] フィールドと [有効値] フィールドにデータが表示されます。
注: 複数のオプションを選択すると、データフロー オプションによって複数のステージ オプションを制御できます。この場合、選択するどのステージ オプションも有効値を共有する必要があります。例えば、あるオプションの値が「Y」と「N」である場合、追加されるどのオプションも値のセットに「Y」または「N」のいずれかを含む必要があり、実行時に使用できる値も共通する値に限られます。つまり、値が「Y」と「N」であるオプションを選択した場合、値が「E」、「T」、「M」、および「L」であるオプションを選択することはできませんが、値が「P」、「S」、および「N」であるオプションは、「N」という値が共通であるため、選択できます。ただし、このオプションに対して使用可能な値は「N」のみで、「Y」、「P」、または「S」は使用できません。
-
実行時に指定できる値を制限するには、[有効値] フィールドのすぐ右にあるアイコンをクリックしてオプションを編集します。
-
デフォルト値を変更する場合は、[デフォルト値] フィールドに別の値を指定します。
注: サービスの場合、デフォルト値はサービスを最初にエクスポーズする前にしか変更できません。サービスをエクスポーズした後は、Enterprise Designer を使用してデフォルト値を変更することはできません。代わりに、Management Console を使用する必要があります。詳細については、「
デフォルト サービス オプションの指定」を参照してください。
-
[OK] をクリックします。
-
必要に応じて、オプションの追加を続けます。
-
オプションの追加を終えたら、[データフロー オプション] ダイアログ ボックスの [OK] をクリックします。
-
埋め込まれたデータフローに実行時オプションを追加した場合は、実行時にそのオプションを使用可能にするために、その実行時オプションを親データフローとすべての先祖データフローで定義する必要があります。これを行うには、埋め込まれたデータフローを含むデータフローを開き、作成したオプションをエクスポーズします。必要に応じて、そのデータフローの親を開き、そこでこのオプションを定義します。すべての先祖でこのデータフロー オプションが定義されるまで、これを続けます。
例えば、"A" という名前のデータフローに、"B" という名前の埋め込まれたデータフローが含まれており、その中に "C" という名前の埋め込まれたデータフローが含まれているとします。つまり、埋め込まれたデータフローは A > B > C という階層構造を持ちます。Casing という名前のオプションを埋め込まれたデータフロー "C" 内のステージでエクスポーズしたい場合、埋め込まれたデータフロー "C" を開いてこれを定義します。続いて、埋め込まれたデータフロー "B" を開いて、このオプションを定義します。最後に、データフロー "A" を開いてオプションを定義することで、このオプションが実行時に使用可能になります。
これで、実行時にオプションを指定できるようにデータフローが設定されました。