分岐ロジックをジョブに追加するには、If/else タスクを使用します
If/else condition
タスクを使用して、タスク グラフにブール条件ロジックを追加します。これらのタスクは、ブール演算子とオペランドのペアで構成され、オペランドは、構成済みまたは動的パラメーターまたはタスク値を使用してジョブまたはタスクの状態を参照できます。 ジョブのパラメータ化を参照してください。
たとえば、 process_records
という名前のタスクがあり、 bad_records
という名前の値で無効なレコードの数を保持しており、不良レコードが検出されたときに処理を分岐するとします。 このロジックをワークフローに追加するには、 {{tasks.process_records.values.bad_records}} > 0
のような式を使用してIf/else condition
タスクを作成します。その後、条件の結果に基づいて依存タスクを追加できます。
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
タスクの名前です。[
<task-name> (false)
] を選択して、false 条件の評価で実行されるタスクを構成します。
If/else condition
の結果に基づいて、複数のタスクを直列または並列に実行するように設定できます。アップストリーム タスクの失敗に基づいて条件付きの実行が必要な場合は、 Run if dependencies
の構成を検討してください。 「タスクの依存関係を構成する」を参照してください。