tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

オーケストレーションプロセスについて@UiPath

オーケストレーションプロセスとは

長時間のワークフロー(以下、長時間ワークフロー)を実行するために、さまざまなサービスの呼び出し、 ロボットとヒトの協働(Human In the Loop)するためのジョブ、キューの仕組み、およびワークフローコンテキスト(状態変数と実行の)の永続性の確保、非同期処理の実装から、これらの要素を、ビジネスルールと条件を使用して調整や、実行を監視する。

長時間ワークフローとは

  • 外部サービスが完了するのを待つ必要があるワークフロー、経過する期間、または人間のユーザーが入力を提供してから続行する必要があるワークフロー。
  • イベントを待機する必要がある通常のワークフローは、応答が必要なオブジェクトを継続的にポーリングするため、システムリソースを消費します。 一方、長時間実行されるワークフローは、再開するための条件が満たされるまで一時停止状態になります。 これにより、リソースの使用量が大幅に削減される。 長時間実行されるワークフローが待機している間、ワークフローコンテキストは永続的なまま。

長時間ワークフローのビジネスシナリオ

1. Outlookのメールボックスから、見積もりを含むメールを受け取り。
2. 見積もりを共有ドライブにダウンロードし、パスを保存。
3. パスをAIOCRマシンに送信して、データを抽出。
4. 見積もりの​​割引値が20%のしきい値を超える場合は、人間の承認を得るために見積もりを送信。
5. 承認システムに入力するために、承認された、またはしきい値を下回るすべてのレビュー担当者の見積もりを送信。
6. 処理が完了したら、各見積もりの​​結果を含むレポートを生成し、関係者にメールで送信。

オーケストレーションプロセスの使い方

  • UiPath Studioのテンプレートメニューから「オーケストレーションプロセス」を選択することで利用できる。
  • UiPath.Persistence.Activitiesをサポートし、Invoke Processおよび非ユーザーインタラクションアクティビティと組み合わせて、ヒューマンタスクとロボットタスクを調整できる。
  • プロジェクト設定で「バックグラウンドプロセス」プロパティが「はい」(デフォルト設定)に設定されている場合、セッション0(※)で実行できるため、迅速な実行が保証される。

※ OSが起動されて最初に作成されるのがセッション0で、サービスとかはセッション0で動作する。