
みなさま、こんにちは。植木です。
今回は、UiPathのMaestroにおけるBPMN要素の詳細についてご紹介します。
「この場面では何を使えばいいのか」をすぐに確認できるリファレンスとしてまとめましたので、
ぜひご活用ください。
※本記事は、2026年3月時点の情報をもとに作成しておりますので予めご了承ください。
目次
1. 要素選択クイックリファレンス
本記事は内容が多岐にわたるため、目的の項目がある方は下記よりご確認ください。
| やりたいこと | 使う要素 |
| スケジュールでプロセスを自動起動 | タイマー開始イベント |
| 外部メッセージでプロセスを起動 | メッセージ開始イベント |
| 一定時間待機してから次へ進む | タイマー中間キャッチイベント |
| タスクがタイムアウトしたら別経路へ | タイマー境界イベント |
| タスク中に定期リマインダーを送る | タイマー境界イベント(中断なし) |
| 人が承認・入力する手順 | ユーザータスク |
| RPAやAIを自動実行する | サービスタスク |
| データ変換・計算ロジックを書く | スクリプトタスク |
| ビジネスルール(DMN)を評価する | ビジネスルールタスク |
| 外部システムへ通知を送る | 送信タスク |
| 外部からの応答を待つ | 受信タスク |
| 条件によって1経路に分岐 | 排他的ゲートウェイ |
| 条件によって複数経路を並行実行 | 包括的ゲートウェイ |
| 常に全経路を並行実行 | 並列ゲートウェイ |
| 先に来たイベントで分岐 | イベントゲートウェイ |
| 処理をグループ化して図を整理 | サブプロセス |
| 共通処理を別プロセスとして再利用 | コールアクティビティ |
| リストを1件ずつ順番に処理 | シーケンシャル マルチインスタンス |
| リストを同時並行で処理 | 並列マルチインスタンス |
2. イベント
イベントはプロセスの開始・終了・途中で発生する出来事を表します。
形状は円で、内部のアイコンで種別を区別します。
2-1. 開始イベント ― どうやってプロセスを始めるか
| 種別 | 実行 | こんな場面で使う |
| 開始イベント(設定なし) | ✅ | 手動トリガー・テスト・他プロセスからの呼び出し |
| メッセージ開始イベント | ✅ | 外部システムからのメッセージ受信で開始(Integration Service経由) |
| タイマー開始イベント | ✅ | 毎日9時・毎週月曜など、スケジュール起動したいとき |
| その他の開始イベント | ❌ | モデリング図示のみ(実行不可) |
※実行が「×(モデリング図示のみ)」の要素について補足
MaestroのBPMN要素には、図上に配置しても実際の処理には影響しない「モデリング図示のみ」の要素が存在します。これらはプロセスの見える化や注釈目的で活用するものです。
2-2. 終了イベント ― どうプロセスを終わらせるか
| 種別 | 実行 | こんな場面で使う |
| 終了イベント | ✅ | 通常の終了 |
| メッセージ終了イベント | ✅ | 終了時に外部システムへ通知を送りたいとき |
| エラー終了イベント | ✅ | 意図的にエラーを発生させ、上位プロセスへ情報を渡したいとき |
| 強制終了イベント | ✅ | プロセス全体(並列パスも含む)を即時強制終了したいとき |
| その他の終了イベント | ❌ | モデリング図示のみ(実行不可) |
💡 エラー終了イベントの例
下図は、サブプロセス内で特定の条件が発生したらエラー終了処理をする例です。
(エラー境界イベントの説明は "2-4. 境界イベント" をご参照ください)
※補足:エラー終了イベントは、プロパティで任意のエラーラベル・エラーコードを設定しないと
実行できないので注意
💡 終了イベントと強制終了イベントの違い
並列パスが動いている場合、終了イベントはそのパスのみを終了させます。残りの並列パスは引き続き動作し、すべてのパスが終了して初めて、プロセス全体が完了します。一方、強制終了イベントはプロセス全体を即時停止したい場合に使用します。
2-3. 中間イベント ― プロセスの途中で起こる出来事
| 種別 | 実行 | こんな場面で使う |
| 中間スローイベント | ✅ | プロセス図上のマイルストーン・チェックポイントを明示したいとき |
| メッセージ中間スロー・キャッチイベント | ✅ | 外部からの応答・コールバックを待ちたいとき |
| タイマー中間キャッチイベント | ✅ | 次のステップまで一定時間待機させたいとき |
| その他のスロー・キャッチイベント | ❌ | モデリング図示のみ |
⚠️ タイマー中間キャッチイベントの動作仕様
タイマーは「到達した時点」から評価されます。指定時刻をすでに過ぎていた場合は待機せず即時実行されます。
例:「●月×日 17時」の設定で、17時以降にタイマーキャッチイベントへ到達 ⇒ 待ち時間なしで即時次へ進む
2-4. 境界イベント ― タスク実行中の「例外・割り込み」を処理する
タスクの外枠に付けるイベントです。「中断」と「中断なし」の2種類があります。
| 種別 | 実行 | タスクへの影響 | こんな場面で使う |
| メッセージ境界イベント | ✅ | タスクを中断して別経路へ | 特定のメッセージを受け取った瞬間にタスクを中断したいとき |
| タイマー境界イベント | ✅ | タスクを中断して別経路へ | タスクが一定時間以内に完了しなければ中断したいとき |
| エラー境界イベント | ✅ | タスクを中断してエラー処理へ | タスク内でエラーが発生したら代替フローに切り替えたいとき |
| メッセージ境界イベント(中断なし) | ✅ | タスクを継続しつつ並列パスを起動 | 元のタスクやサブプロセスを止めずに、特定のメッセージを受け取った瞬間に別の処理を並列実行したいとき |
| タイマー境界イベント(中断なし) | ✅ | タスクを継続しつつ並列パスを起動 | 元のタスクやサブプロセスを止めずに、時間条件に合わせて別の処理を並列実行したいとき |
| その他の境界イベント | ❌ | なし | モデリング図示のみ |
3. タスク
タスクはプロセスの作業単位です。実行主体と処理内容によって7種類を使い分けます。
3-1. タスク種別の選び方
| タスク種別 | 実行 | 実行主体 | こんな場面で使う |
|
ユーザータスク (アクションアプリタスクを作成) |
✅ | 人 | 承認・入力・判断など、人の操作が必要なとき |
| サービスタスク | ✅ | システム | RPA・AI・API・外部システムの自動呼び出し |
|
送信タスク (コネクタアクティビティを実行) |
✅ | システム | 外部システムへのメッセージ送信 |
|
受信タスク (コネクタイベントを待機) |
✅ | システム | 外部からのイベント・メッセージ待機 |
|
ビジネスルールタスク (ビジネスルールを実行) |
✅(プレビュー) | ルールエンジン | DMNテーブルによるビジネスルール評価 |
|
スクリプトタスク (スクリプトを実行) |
✅ | エンジン | 短いスクリプトを実行し、データ変換・計算・検証などのロジック処理 |
| 手動タスク | ❌ | -- | 図示・ドキュメント目的のみ(実行不可) |
参考:スローとタスクの違い
| 項目 | 主な用途 | 主な違い |
| スローイベント | 合図・通知など、瞬時に終わるものを表す | 境界イベント(タイマーなど)を付けられない |
| タスク | 具体的な作業を表す | 境界イベントを付けられる |
3-2. サービスタスクのアクション詳細
サービスタスクは最も多機能なタスクです。以下のアクションを選択します。
| アクション | こんな場面で使う |
| RPAワークフローを開始して待機 | 無人RPAを起動して完了まで待機 |
| エージェントを開始して待機 | UiPath AIエージェントを起動して完了まで待機 |
| 外部エージェントを開始して待機 | CrewAI・Salesforce・ServiceNow等の外部AIエージェントを起動し完了まで待機 |
| 外部ワークフローを開始して待機 | 外部ツールのワークフローを起動し完了まで待機 |
| APIワークフローを開始して待機 | APIベースのワークフローを起動し完了まで待機 |
| エージェンティックプロセスを開始 | 別のMaestroプロセスを起動して、完了を待たずに次へ進む |
| エージェンティックプロセスを開始して待機 | 別のMaestroプロセスを起動し完了まで待機 |
| キューアイテムを作成 | Orchestratorキューに非同期でアイテムを追加する |
| キューアイテムを作成して待機 | キューに追加して処理完了まで待機 |
4. ゲートウェイ
ゲートウェイは、プロセスの経路を分岐・合流させる要素です。
分岐ロジックに合わせて、適切なものを選択します。
4-1. ゲートウェイ種別の選び方
| 種別 | 実行 | 分岐ロジック | こんな場面で使う |
| 排他的ゲートウェイ | ✅ | 条件を順に評価し、最初にtrueの1経路のみ実行 | 承認/却下など、必ず1つの経路に進む場合 |
| 並列ゲートウェイ | ✅ | 条件なしで全経路を同時実行 | 全ての後続処理を並行して実行する場合 |
| 包括的ゲートウェイ | ✅ | trueの条件をすべて並列実行(無条件も設定可能) | 複数の後続処理が条件次第で同時に実行される場合 |
| イベントゲートウェイ | ✅ | 最初に発生したイベントの経路を実行 | タイムアウトか応答か、先に来た方で分岐したい場合 |
| 複雑なゲートウェイ | ❌ | -- | モデリング図示のみ(実行不可) |
4-2. ゲートウェイの使い分けフローチャート
--------------------------------------------------------------------------
経路を分岐させたい
│
├─ 条件によって経路が変わる?
│ ├─ YES → 複数の経路が同時に成立することがある?
│ │ ├─ YES → 【包括的ゲートウェイ】
│ │ └─ NO → 【排他的ゲートウェイ】※デフォルト経路を必ず設定
│ └─ NO(常に全経路を実行)→ 【並列ゲートウェイ】
│
└─ イベントの発生タイミングで分岐したい?
└─ YES → 【イベントゲートウェイ】
--------------------------------------------------------------------------
■補足
⚠️ 排他的ゲートウェイの注意点
条件がいずれもtrueにならず、デフォルト経路も未設定の場合、プロセスは実行エラーになります。
必ずデフォルト経路を設定してください。
⚠️ 包括的ゲートウェイの注意点
条件は省略可能ですが、設定する場合はすべてのケースをカバーするか、無条件の経路を定義してください。 全条件がfalseになると実行エラーになります。なお、現時点のMaestroでは、包括的ゲートウェイにデフォルトパスを設定する機能がサポートされていません。
💡 並列ゲートウェイの合流動作
並列ゲートウェイは、分岐だけでなく合流にも使用します。合流時はすべての経路が到達するまで待機してから、次の処理へ進みます。並列で起動したすべてのタスクの完了を待ってから後続処理を実行したい場合は、分岐と対になる並列ゲートウェイを配置してください。
💡 条件式の書き方
ゲートウェイの条件はJavaScriptライクな構文で記述します。
参考:Maestro ユーザー ガイド - C# 式から JavaScript 式に移行する
5. サブプロセス・マーカー
サブプロセスとは、メインプロセスの中に入れ子で定義できる「小さなプロセスのまとまり」です。
処理を分割・整理したり、特定のロジックをまとめて親プロセスをシンプルに保ちたい場合に活用します。
5-1. サブプロセスの種別
| 種別 | 実行 | こんな場面で使う |
| サブプロセス(折りたたみ・展開) | ✅ | 関連するタスクをグループ化して図を整理したいとき。変数は親プロセスと共有。 |
| コールアクティビティ | ✅ | 別のMaestroプロセスを再利用したいとき。入出力パラメータで明示的にデータを受け渡し。 |
| イベントサブプロセス | ✅ | 特定のイベント(エラー・タイマー等)発生時に割り込み処理を実行したいとき。 |
| トランザクション | ❌ | モデリング図示のみ |
💡 サブプロセスとコールアクティビティの使い分け
- 同じプロセス内でのみ使う処理
⇒ サブプロセス(親プロセスの変数をそのまま共有できるため扱いやすい)
- 複数のプロセスから呼び出す共通処理
⇒ コールアクティビティ(再利用しやすく、保守性が高い)
5-2. マーカー(繰り返し処理)
マーカーをタスクやサブプロセスに設定すると、リストやデータテーブルの各要素に対して繰り返し処理を実行できます。
| マーカー種別 | 実行 | こんな場面で使う |
| シーケンシャル マルチインスタンス(順次実行) | ✅ | リストの要素を1件ずつ順番に処理したいとき |
| 並列マルチインスタンス(並列実行) | ✅ | リストの要素を同時並行で処理したいとき(最大50件/回)。手動タスクを並列マルチインスタンスにして、全ての確認作業が完了するまで待機するといった使い方も可能。 |
| ループ | ❌ | モデリング図示のみ(実行不可) |
| 補償処理 | ❌ | BPMNとして定義されているが Maestro では未サポート |
設定手順
- タスクを選択し、「要素を変更」をクリック
- シーケンシャル マルチインスタンス、並列マルチインスタンスのどちらかを選択
- 注意説明を確認し「続行」をクリック
- プロパティのマルチインスタンスの「項目」で、繰り返し対象の変数を指定
- 反復子は、「変数を使用」から「iterator > item」で設定(例:リスト型変数の場合は「item」、データテーブル型変数の場合は、式エディターを開いて「iterator.item["列名"]」など)
繰り返し対象に指定できる主な変数の型
- リスト
- データテーブル
- 配列 など
※詳細は、以下の公式ドキュメントをご参照ください。
参考:マルチインスタンス マーカー - ループ可能として扱われるコレクション型
備考:ループマーカー・補償処理について
◆ループマーカー:BPMN標準では「条件が満たされるまで同じタスクを繰り返す」ループを表現できますが、現時点の Maestro では実行不可(図示のみ)です。条件付きループを実装したい場合は、「排他的ゲートウェイ+シーケンスフローで折り返す」構成で代替してください。
参考:排他的ゲートウェイを利用したループ構成の例
◆補償処理:処理を実行前の状態に巻き戻す「取り消し」パターンですが、現時点の Maestro では未サポートです。代替として、「エラー境界イベント+補償用タスク」を明示的にフローとして設計する方法を検討してください。
参考:エラー境界イベントを利用した補償処理の例
6. まとめ
本記事では、Maestroで利用可能なBPMN要素について詳しく解説しました。
各要素の実行可否の詳細は、以下のUiPath公式ドキュメントもご参照ください。
本記事がMaestroのプロセス開発・学習の参考になれば幸いです。
他のおすすめ記事はこちら
著者紹介
ICT事業本部 技術本部
先端技術統括部 DXコンサルティング部 デジタルイノベーション課
植木 真
