【UiPath応用】第10回:キュー (Queue) 入門~複数ロボットで連携する「リレー形式」の自動化~

こんにちは!UiPath メンターです。

これまで皆さんは、「Excelを読み込んで、ループして、Webに入力する」というロボットを作ってきました。
これは「1人のロボットが最初から最後まで全部やる」スタイルです。

しかし、もし処理すべきデータが10,000件あったらどうでしょう?
そして、9,999件目でエラーが起きて止まってしまったら?
「どこまで終わったっけ?」「残りだけやり直したいけど……」と大パニックになりますよね。

プロの現場では、これを防ぐために**「キュー (Queue)」**という仕組みを使います。
仕事を「小さなチケット」に切り分けてクラウドに積み上げ、ロボットたちがそれを次々に取っていくスタイルです。
これなら、途中で止まっても安心ですし、複数台のロボットで協力することも可能です。

1. キューの仕組み:「ディスパッチャー」と「パフォーマー」

キューを使う場合、ロボットを2つの役割に分けるのが鉄則です。

  • Dispatcher(ディスパッチャー):
    「指示出し役」。Excelなどのデータを読み込み、Orchestrator(クラウド)のキューに「1件ずつのチケット」として登録します。
    (一瞬で終わります)
  • Performer(パフォーマー):
    「実行役」。キューからチケットを1枚受け取り、Web入力などの重い処理を行います。
    (時間がかかります)

この「分業制」にすることで、もし実行役がエラーで止まっても、指示データ自体はクラウドに残っているので、すぐに再開できるのです。

2. Orchestratorで「キュー」を作る

まずは、データの保管場所(箱)を作ります。

  1. UiPath Automation Cloud の Orchestrator を開きます。
  2. [マイ ワークスペース] またはフォルダを選び、[キュー (Queues)] をクリックします。
  3. [キューを追加] を押し、名前(例:InvoiceQueue)を入力して作成します。

「自動再試行 (Auto Retry)」の設定項目がありますが、デフォルトの「はい(1回)」のままでOKです。
これが「失敗したら自動でやり直してくれる」という最強の機能です。

3. データを登録する(Dispatcher)

Studioで、「指示出し役」のロボットを作ります。
Excelを読み込んでループするところまでは今まで通りです。

手順

  1. ループ(For Each Row)の中に、[キュー アイテムを追加 (Add Queue Item)] を配置します。
  2. キューの名前: "InvoiceQueue"(先ほど作った名前)
  3. アイテム情報 (ItemInformation): ここが重要!

プロパティの [アイテム情報] ボタンを押すと、小さな画面が出ます。
ここで、「Web入力に必要なデータ」を定義します。

  • 名前: "ClientName"  値: CurrentRow("顧客名").ToString
  • 金額: "Amount"  値: CurrentRow("金額").ToString

これを実行すると、Orchestrator上にデータが積み上がっていきます。

4. データを処理する(Performer)

次に、実際に作業をする「実行役」のロボットを作ります。

① データを取り出す

[トランザクション アイテムを取得 (Get Transaction Item)] を使います。

  • キューの名前: "InvoiceQueue"
  • 出力変数: tr_Item (QueueItem型)

これを実行すると、キューの中から「未処理」のデータを1つだけ取ってきて、同時にそのデータを「処理中」マークに変えてくれます(他のロボットに取られないようにロックします)。

② データの中身を使う

取り出した tr_Item から、具体的な値(顧客名など)を取り出すには、以下のように書きます。

tr_Item.SpecificContent("ClientName").ToString

SpecificContent("キーの名前") という呪文を使います。
これをWeb入力のアクティビティなどで使います。

③ 結果を報告する(完了 or 失敗)

処理が終わったら、必ず「報告」をします。
[トランザクション ステータスを設定 (Set Transaction Status)] アクティビティを使います。

  • 成功した場合: ステータスを [Successful] にする。
    → キューから消えずに「成功」として記録されます。
  • 失敗した場合: ステータスを [Failed] にする。
    → ここで [System Exception](アプリのエラー)を選ぶと、Orchestratorは自動的にそのデータを「再試行(リトライ)」キューに入れてくれます!

💡 メンターからのアドバイス:ビジネス例外とは?

失敗にも2種類あります。
1. システム例外: ネット切れなど。→ 「もう一回やれば直るかも」なのでリトライする。
2. ビジネス例外: データ不備(金額がマイナスなど)。→ 「何度やっても無理」なのでリトライしない。
この使い分けができるようになると、無駄なエラー繰り返しを防げます。

5. キューを使うメリットまとめ

  • 頑丈: 途中で止まっても、残りのデータは無事。
  • 自動リトライ: 一時的なエラーなら勝手にやり直してくれる。
  • 並列処理: データさえ積んであれば、ロボットを5台同時に動かして、5倍の速さで処理できる。
  • 見える化: 「今、何件終わって、何件失敗したか」がWeb画面でグラフで見える。

シリーズ完結にあたって

お疲れ様でした!これにて【応用編】も完走です。

あなたは今、
✅ 基本的な操作(Web/Excel)
✅ エラーへの対処(デバッグ/TryCatch)
✅ 実務的な連携(メール/PDF/ファイル操作)
✅ そして、大規模運用の基礎(アセット/キュー)
という、RPA開発に必要な武器をすべて手に入れました。

ここから先は、実際の業務という「戦場」です。
うまくいかないことも沢山あるでしょう。でも、このカリキュラムで学んだ基礎があれば、どんな応用問題も必ず解けます。

UiPathは、あなたの仕事を奪う敵ではありません。
あなたの時間を生み出し、クリエイティブな仕事に集中させてくれる「最強の相棒」です。

さあ、自信を持って、自動化の旅を続けてください。
Happy Automation!

タイトルとURLをコピーしました