- はじめに
- 基本情報
- BPMN を使用したプロセス モデリング
- ケース管理を使用したプロセス モデリング
- フローを使用したプロセス モデリング
- プロセスの実装
- プロセスの操作
- プロセスの監視
- プロセスの最適化
- 参考情報
分岐 (判断、切り替え)、反復 (ループ)、結合するフロー ノードを制御して、プロセスの実行順序を管理します。
概要
制御フローにより、プロセスが実行する対象と順序をどのように決定するかが決まります。すべてのプロセスはノードの直線として始まりますが、実際の作業には意思決定、繰り返し、再統合が必要です。フローには、判断、切り替え、ループ、マージの 4 つの制御フロー ノードが用意されており、キャンバスを離れることなく分岐、反復、収束を行うことができます。
分岐
分岐により、プロセスが別個のパスに分割され、条件に応じて異なるノードが実行されるようにします。
判断 — 2 つのパス
[判断] ノードは、1 つの JavaScript 式を評価し、true または false の 2 つの出力のいずれかにルーティングします。はい/いいえ、合格/不合格、または任意のバイナリ チェックに適合します。
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200
上記の式は、成功した応答を true の分岐に送信し、それ以外はすべて false の分岐に送信します。
完全な構成については、「 Decision node reference 」をご覧ください。
スイッチ — 3 つ以上のパス
[条件分岐 (switch)] ノードは、case 式の順序付きリストを評価し、最初に一致した式を取得します。最大で 10 個のケースと、一致しない場合の任意の既定の分岐を追加します。
スイッチは、カテゴリ、ステータス、または 2 つ以上の結果が考えられる任意の値によってルーティングを適合させます。
完全な構成については、「 スイッチ ノードのリファレンス 」をご覧ください。
ループ
ループは、ノードのシーケンスを複数回繰り返します。Flow には、状況に応じて 2 つのループ ノードが用意されています。
ループ (繰り返し (繰り返し (コレクションの各要素))
ループ ノードは、コレクション (配列) を反復処理し、項目ごとに 1 回だけその本体を実行します。これにより、ループ本体内で次の 3 つの変数が公開されます。
currentItem— 現在の反復処理の項目ですcurrentIndex— 実行中の反復処理を追跡する、ゼロから始まるインデックスですcollection— 反復処理される配列全体
すべての反復処理が完了すると、ループはすべての反復処理の結果を集約する output 配列を生成します。実行は 成功 ハンドルから続行されます。
ループ ノードの コレクション 式は、ループ ノードが反復処理する配列を指します (例: $vars.script1.output)。[ 並列 ] オプションでは、すべての反復処理が順次実行されるのではなく同時に実行されます。ループ出力ハンドルに接続されたノードはループ本体を形成し、成功ハンドルに接続されたノードはすべての反復処理の完了後に実行されます。
ブランチをマージする
[判断] または [切り替え] によってプロセスが分割された後は、どちらの分岐を取ったかに関係なく下流のノードを実行する必要がある場合は、結合ノードを使用します。
マージ ノードは、その 1 つの入力ハンドルで複数の入力エッジを受け入れ、1 つの出力を生成します。各分岐の最後のノードが [結合] に接続され、プロセスは [結合] 出力ハンドルから続行されます。
[結合] は、実際に実行された分岐を待機します。入力エッジすべてを待機するわけではありません。現在の実行中にデータを受信した分岐のみが通過します。
実際の例
サポート チケットのリストを取得し、各チケットをループ処理し、優先度の高いチケットを他とは異なる方法でルーティングするプロセスについて考えてみましょう。
このプロセスでは、次の 5 つのノードが接続されます。
- HTTP 要求ノードはチケット API を呼び出し、チケット オブジェクトの配列を返します。
- ループ ノードは を反復処理
$vars.httpRequest1.output.body.tickets。 - ループ本体内で、 判断 ノードは
$vars.loop1.currentItem.priority === "high"を評価します。true ブランチは、オンコール チームにアラートを発する [メールを送信 ] ノードに接続します。false の分岐は、後で確認するためにチケットをログに記録する スクリプト ノードに接続します。 - マージ ノードは両方のブランチを接続するため、どちらのパスが実行されたかに関係なく、反復処理は正常に完了します。
- マージはループの loopBack 入力に接続し、ループの 成功 ハンドルはプロセスの残りの部分に続行されます。
このパターン (フェッチ、ループ、分岐、結合) は、実際のオートメーション シナリオの大部分をカバーしています。
関連ページ
- 意思決定ノード — 2 パス分岐の完全な構成リファレンス
- スイッチ ノード — マルチパス分岐の完全な構成リファレンス
- 変数とデータ フロー —
$vars式とノード出力のしくみ - エラー処理 — 失敗の処理です。条件付き分岐とは異なります
- キャンバス — プロセスを視覚的にナビゲートおよび構築する