If/else condition タスクを使って、タスク グラフにブール型条件ロジックを追加します。 これらのタスクはブール演算子とオペランドのペアで構成されます。オペランドは、設定されたパラメーター、動的パラメーター、タスク値を使用して、ジョブやタスクの状態を参照する場合があります。 「ジョブをパラメーター化する」を参照してください。
たとえば、process_records という名前の値で無効なレコードの件数を管理する bad_records という名前タスクがあり、不適切なレコードが見つかったときに処理を分岐するとします。 このロジックをワークフローに追加するには、If/else condition のような式を使用して {{tasks.process_records.values.bad_records}} > 0 タスクを作成します。 その後、条件の結果に基づいて依存タスクを追加できます。
If/else condition タスクを含むジョブ実行の後、UI でジョブ実行の詳細を表示すると、結果と式の評価の詳細を表示できます。 「ジョブ実行の詳細を表示する」を参照してください。
注記
- 数値と数値以外の値には、以下のようにブール演算子によって異なる処理が行われます。
-
==および!=演算子は、オペランドの文字列比較を実行します。 たとえば、12.0 == 12は false に評価されます。 -
>、>=、および<=演算子はオペランドの数値比較を実行します。 たとえば、12.0 >= 12は true に評価され、10.0 >= 12は false に評価されます。 - オペランドでタスク値を参照する場合は、数値、文字列、およびブール値のみが許可されます。 その他の型では、条件式が失敗します。 数値以外の型は文字列にシリアル化され、
If/else condition式の中では文字列として扱われます。 たとえば、タスク値がブール値に設定されると、タスク値は"true"または"false"にシリアル化されます。
-
If/else タスクを設定する
次の手順を行い、ジョブ UI の If/else condition タブで タスクを追加します。
- [ タスクの追加] をクリックします。
- [タスク名] フィールドに名前を入力します。
-
[種類] ドロップダウン メニューで、
If/else conditionを選択します。 - 最初の [条件] テキスト ボックスに、評価するオペランドを入力します。 オペランドでは、次のいずれかを参照できます。
- ジョブパラメーター変数
- タスク パラメーター変数
- タスクの価値
- ドロップダウン メニューからブール演算子を選択します。
- 2 番目の [条件] テキスト ボックスに、条件を評価するための値を入力します。
- [タスクの保存] をクリックします。
If/else 条件で依存関係を設定する
次の手順を行い、If/else condition タブにあるタスク グラフで タスクの依存関係を設定します。
- タスク グラフで
If/else conditionタスクを選択し、[+ タスクの追加] をクリックします。 - タスクの詳細を入力します。
"依存先" フィールドの既定値は
<task-name> (true)で、<task-name>はIf/else conditionタスクの名前です。- false 条件評価で実行されるタスクを設定するには、
<task-name> (false)を選択します。
- false 条件評価で実行されるタスクを設定するには、
If/else condition の結果に基づいて、複数のタスクをシリアルまたはパラレルで実行するように設定できます。 アップストリーム タスクの失敗に基づいて条件付き実行が必要な場合は、 Run if dependencies の設定をご検討ください。 「タスクの依存関係を設定する」を参照してください。