データフローの実行時にステージのオプションが設定に対してエクスポーズされるようにデータフローを設定できます。つまり、ステージではデータフローの実行ごとに異なる設定を使用できます。ステージ オプションは、プロセス フローから、または Job Executor コマンドライン ツールから、ジョブを呼び出すときに設定できます。例えば、出力の大文字と小文字の区別を実行時に指定することを選択できます。こうすると、大文字と小文字の区別を実行時に選択することが可能で、大文字と小文字の区別の設定がそれぞれ異なるデータフローを個別に用意する必要はありません。
この手順では、実行時オプションをサポートするようにデータフローを設定する方法について説明します。
-
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」は使用できません。
-
実行時に指定できる値を制限するには、[有効値] フィールドのすぐ右にあるアイコンをクリックしてオプションを編集します。
-
デフォルト値を変更する場合は、[デフォルト値] フィールドに別の値を指定します。
-
[OK] をクリックします。
-
必要に応じて、オプションの追加を続けます。
-
オプションの追加を終えたら、[データフロー オプション] ダイアログ ボックスの [OK] をクリックします。
-
埋め込まれたデータフローに実行時オプションを追加した場合は、実行時にそのオプションを使用可能にするために、その実行時オプションを親データフローとすべての先祖データフローで定義する必要があります。これを行うには、埋め込まれたデータフローを含むデータフローを開き、作成したオプションをエクスポーズします。必要に応じて、そのデータフローの親を開き、そこでこのオプションを定義します。すべての先祖でこのデータフロー オプションが定義されるまで、これを続けます。
例えば、"A" という名前のデータフローに、"B" という名前の埋め込まれたデータフローが含まれており、その中に "C" という名前の埋め込まれたデータフローが含まれているとします。つまり、埋め込まれたデータフローは A > B > C という階層構造を持ちます。Casing という名前のオプションを埋め込まれたデータフロー "C" 内のステージでエクスポーズしたい場合、埋め込まれたデータフロー "C" を開いてこれを定義します。続いて、埋め込まれたデータフロー "B" を開いて、このオプションを定義します。最後に、データフロー "A" を開いてオプションを定義することで、このオプションが実行時に使用可能になります。
これで、実行時にオプションを指定できるようにデータフローが設定されました。実行時に設定を指定するには、以下の方法を使用します。
- ジョブの場合、データフロー オプション プロパティ ファイルと Job Executor の
-o
引数を使用してオプションを指定できます。
- サービスの場合、オプションは API オプションとして使用できるようになります。
- Web サービスとしてエクスポーズされるサービスの場合、オプションは Web サービス パラメータとして使用できるようになります。
- サブフローの場合、親データフロー タイプ (ジョブ、サービス、Web サービスとしてエクスポーズされるサービス) によって、オプションは親データフローによって継承されるか、上記のいずれかの方法によってエクスポーズされます。