UiPath Appsを使ってプロセスを実行する方法はいくつか存在します。
この記事ではそれぞれの方法を活用ケースと合わせて比較します。
[プロセスを開始]ルールを利用
[プロセスを開始] はAppsに標準で搭載されている機能です。
ボタンを押す、ページを開くなど特定のイベントが起きた際に実行するルールとして追加することができ、Attended Robot、Unattended Robot、Cloud Robotのいずれのランタイムでも実行することができます。引数の設定も簡単なので、アプリで入力した内容をプロセスに渡すことも容易です。
また実行後に出力される引数を受け取り、その値をアプリ上の画面に反映させるまでを1つのルールで完結できるのもメリットの一つです。
使いやすい反面、デメリットになるのは詳細な設定を行うことができない点です。
2025年4月段階では、ジョブの優先度やジョブの実行を終了するスケジュールが設定できないなど、Orchestratorからプロセスを実行するときには選択できる項目を選ぶことができません。また実行するユーザー、ロボット名やマシン名を変数として渡せない点もデメリットに感じました。
デメリットはいくつかあるものの、設定の容易さを考えると、基本的にはこのルールを利用することが推奨されます。
[プロセスを開始] まとめ
⭕ AR、UR、Cloud Robotすべてに対応
⭕ 引数の受け渡しが容易
⭕ マシンやロボットを簡単に設定できる
❌ 実行に関する詳細な設定ができない
[キューに追加]&キュートリガー
[プロセスを開始] と同様に[キューに追加] のルールもAppsの標準機能です。Attended Robotでは実行できません。
Orchestrator上でキューを設定するところからの手順は以前にこちらの記事で紹介しているので参照してください。
キューを利用するメリットとしては、複数のロボットに実行を分散することができるので処理時間が短縮できるということがあげられます。例えばアプリを同時に利用するようなユースケースにおいて利用が推奨されます。
キューアイテムにもアプリで入力した値を、アイテムのプロパティとして渡すことができます。
ただ追加したキューアイテムのプロパティの値をプロセスに渡す方法には注意です。単にプロセスの引数として設定して渡すのではなく、プロセスの処理の中で一度キューアイテムから特定のプロパティを取得するという処理を追加する必要性があります。キューに適した設計のプロセスで活用することが想定されます。
[キューに追加] まとめ
⭕ UR、Cloud Robotに対応
⭕ 複数ロボットで分散処理できる
❌ キューに適さない設計のプロセスには利用できない
カスタムコネクションを利用
最後の方法はカスタムコネクションの機能を利用してOrchestratorのAPIをキックしてプロセスを実行する方法です。2025年4月時点ではOrchestratorのAPIを利用するコネクションがIntegration Serviceに存在しないので、自前でコネクションを作成してAppsから呼び出します。各サービスのコネクションにはStudioで利用できる特別なアクティビティがありますが、それと同様に各コネクションのメソッドがApps内のルールとして利用できます。
カスタムコネクションを作成する手順は以下のドキュメントをご確認ください。
https://docs.uipath.com/ja/integration-service/automation-cloud/latest/user-guide/building-your-custom-connector
この機能を利用するメリットは、[プロセスを開始] ではできなかった詳細の設定を行うことができます。例として以下にはロボットIDとマシンIDを設定する項目を追加したルールを作成しました。これによって[プロセスを開始] ではできなかったロボット、マシンを変数で指定して実行することができます。
カスタムコネクションの作成や運用、保守には手間がかかる点はデメリットです。また今回作成したものはあくまでもジョブを開始するだけになるので、プロセスの実行結果を取得するためにはまた別のメソッドを追加する必要性があるのもマイナスポイントです。どうしても詳細な設定をして実行する必要性があるときに検討してみてください。
カスタムコネクションを利用 まとめ
⭕ UR、Cloud Robotに対応
⭕ プロセスの実行に関する詳細設定の項目を追加できる
❌ コネクションを管理するのに手間がかかる
❌ 実行後の結果を取得するのが困難
総括
今回はAppsからプロセスを実行する方法を3つ紹介しました。
基本的には[プロセスを実行] のルールを利用して用途に合わせて他の2つの機能を活用するのが最も効率的だと私は思います。また最近はStudioとAppsが統合された機能もリリースされているので、Http要求のアクティビティを使ってOrchestratorのジョブをキックするのも一つの手です。
今回の記事がアプリとプロセスを連携した機能を開発する際の手助けになればうれしいです。