UiPath Documentation
maestro-automate
latest
false
Maestro Automate ユーザー ガイド

制御フロー

Control flow: which node to choose when a workflow must decide, repeat, or wait for parallel paths, with an example that uses all four together.

制御フローにより、ワークフローが何を実行するか、どの順序で実行するかを決定します。ワークフローはノードの直線として始まりますが、実際の作業では判断、繰り返し、パスの再結合が必要です。Decision、Switch、Loop、Merge の 4 つの制御フロー ノードがこれらのニーズに対応します。キャンバスを離れることなく、パスを分岐、繰り返し、再結合します。

分岐​

分岐すると、ワークフローが別個のパスに分割されるため、条件に応じて異なるノードが実行されます。

判断: 2 つのパス​

[判断] ノードは、1 つの JavaScript 式を評価し、true または false の 2 つの出力のいずれかにルーティングします。「はい」または「いいえ」の質問、チェックが合格または不合格、および結果が 2 つあるその他のチェックに当てはまります。

$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200

上記の式は、成功した応答を true の分岐に送信し、それ以外はすべて false の分岐に送信します。

完全な構成については、「 判断ノードのリファレンス 」をご覧ください。

スイッチ: 3 つ以上のパス​

[条件分岐 (switch)] ノードは、case 式の順序付きリストを評価し、最初に一致した式を取得します。最大で 10 個のケースと、一致しない場合の任意の既定の分岐を追加します。

スイッチは、カテゴリ、ステータス、または 2 つ以上の結果が考えられる任意の値によってルーティングを適合させます。完全な構成については、「 スイッチ ノード」をご覧ください 。

ループ​

ループは、コレクション内の項目ごとにノードのシーケンスを 1 回ずつ繰り返します。

ループ (繰り返し (繰り返し (コレクションの各要素))​

ループ ノードは、配列と値の順序付きリストであるコレクションを反復処理し、その本体を項目ごとに 1 回実行します。これにより、ループ本体内で次の 3 つの変数が公開されます。

  • currentItem: 現在の反復処理の項目です。
  • currentIteration: 現在の反復処理の数です。
  • collection: 反復処理される配列全体です。

すべての反復処理の完了後、ループはすべての反復処理の結果を集約した output 配列を生成します。ワークフローは、右端のループの出力ハンドルに接続されたノードから続行されます。

ループ ノードの コレクション 式は、ループ ノードが反復処理する配列を指します (例: $vars.script1.output)。[ 並列 ] オプションでは、すべての反復処理が順次実行されるのではなく同時に実行されます。ループはキャンバスにコンテナーとして表示され、その中には 開始 ハンドルと 続行 ハンドルがあります。それらの間に配置されたノードはループ本体を形成し、 続行 ハンドルは各反復を終了します。

ループを早期に終了する​

ループ ノードには、コレクションの終わりに到達する前に停止する方法が 2 つあります。

  • Break on condition is an expression that the loop checks after each iteration completes. When it's true, the loop stops, and the workflow continues after the loop. Because the check happens after each iteration in order, it works only in sequential loops.
  • [ブレーク ハンドルを表示] がオンの場合、ループ内にブレーク ハンドルが表示されます。ループ本体内のパスがそのパスに到達すると、ループは反復を停止します。ブレークハンドルは、シーケンシャルループと並列ループの両方で使用できます。これは、本文内のノードが意思決定を行う場合に使用します (たとえば、探している項目を見つける意思決定など)。

「Loop」では、両方の設定を例を挙げて説明しています。

ブランチをマージする​

[結合] ノードは、並列の分岐を再結合します。ワークフローを続行する前に、すべての入力分岐が完了するのを待機し、単一の入力ハンドルで複数の入力エッジを受け入れます。

[判断] または [条件分岐] の分岐は、どちらか一方しか実行されないため、相互に排他的です。マージは必要なく、その後のマージは、実行されなかった分岐を待機し続けます。[結合] では、動作について説明します。

実際の例​

サポート チケットのリストを取得し、各チケットをループ処理し、優先度の高いチケットを他のチケットとは異なる方法でルーティングするワークフローでは、次の 5 つのノードを使用します。

  1. HTTP 要求ノードはチケット API を呼び出し、チケット オブジェクトの配列を返します。
  2. ループ ノードは を反復処理$vars.httpRequest1.output.body.tickets。
  3. ループ本体内で、 判断 ノードは $vars.loop1.currentItem.priority === "high"を評価します。true ブランチは、Amazon SES などのメール コネクタから取得される [メールを送信 ] ノードに接続し、オンコール チームにアラートを発します。false の分岐は、後で確認するためにチケットをログに記録する スクリプト ノードに接続します。
  4. 両方の分岐がループの 継続 ハンドルに接続するため、反復処理は実行されたパスで終了します。
  5. すべての反復処理の後、ループの出力ハンドルに接続されたノードが残りのワークフローを続行します。

このフェッチ、ループ、分岐のパターンは、実際のオートメーション シナリオの大部分をカバーしています。

次のステップ​

このページは役に立ちましたか?

接続

ヘルプ リソース サポート(opens in new window)

学習する UiPath アカデミー(opens in new window)

質問する UiPath フォーラム(opens in new window)

最新情報を取得