If/else タスクを使ってジョブに分岐ロジックを追加する
If/else condition
タスクを使って、タスク グラフにブール型条件ロジックを追加します。 これらのタスクはブール演算子とオペランドのペアで構成されます。オペランドは、設定されたパラメーター、動的パラメーター、タスク値を使用して、ジョブやタスクの状態を参照する場合があります。 「ジョブをパラメーター化する」を参照してください。
たとえば、bad_records
という名前の値で無効なレコードの件数を管理する process_records
という名前タスクがあり、不適切なレコードが見つかったときに処理を分岐するとします。 このロジックをワークフローに追加するには、{{tasks.process_records.values.bad_records}} > 0
のような式を使用して If/else condition
タスクを作成します。 その後、条件の結果に基づいて依存タスクを追加できます。
If/else condition
タスクを含むジョブ実行の後、UI でジョブ実行の詳細を表示すると、結果と式の評価の詳細を表示できます。 「ジョブ実行の詳細を表示する」を参照してください。
Note
- 数値と数値以外の値には、以下のようにブール演算子によって異なる処理が行われます。
==
および!=
演算子は、オペランドの文字列比較を実行します。 たとえば、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
の設定をご検討ください。 「タスクの依存関係を設定する」を参照してください。