【UiPath】あなたのオーダーはどれ？ロボット実行のメニュー化をしてみた


# はじめに

プロセスを起動する時の方法は複数ありますが、どれが適しているか決まっている場合の他、利用するユーザーが、それぞれの特徴を知った上で選択したい場合もあったりします。あなたのオーダーはどれ？ロボット実行方法を知らないユーザーがメニューを見て要望すると言ったものを目指して、まずは、ゆる～くメニュー化して見ました。！（笑）
人がマニュアルで実行する場合のメニューと、ある特定条件のトリガーで自動実行する場合のメニューの２つのグループでメニュー化してます！

# 前提
本記事の記載が全てではありません。将来的にも増えてくるでしょうしね！



# 1. マニュアル実行メニュー
::: note 
いつでも好きなタイミングで手動による実行をしたい場合のメニューです。
:::
## 1-1 UiPath Assistant
マニュアル実行のオーソドックスな方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/5464757c-d0e5-8492-c5ab-0655dca6a87b.png)

:::note info
特徴
1. ユーザー自身の端末でロボットが実行しますが、PIPを利用することで利用者は操作を邪魔されることなく、作業を協働することができます。
2. メッセージボックスなどを表示させる対話型プロセスでも広く使われています。
3. プロセス選択のUIに優れ、プロセスのグループ化も好みで設定しておけます。
4. プロセス単位でアラームが設定できます。時間になるとロボットが実行するかアナウンスしてくれます。
4. プロセス単位でキーボードショートカットキーが設定できます。例えば、Ctrl+Alt+Shift+PやF3キーを設定しておき、押下すると、該当のプロセスが起動します。
5. 引数をユーザー単位で設定しておくことができます。これにより、例えば、ユーザー環境の決まったフォルダやファイル名等を固定的に設定しておき処理すると言ったプロセスも可能になります。
:::

:::note warn
注意
1. Attended Robotが利用できるユーザーライセンスが必要です。ライセンス持っていない場合はUnattended Robotを利用することになります。
:::

## 1-2 Orchestratorでプロセスのマニュアル実行
Unattended Robotのプロセスをマニュアル実行する昔ながらの方法です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/35b9d342-83d9-0250-5cd7-0e0736dc032e.png)

:::note info
特徴
1. Orchestratorに作成したプロセスは、マニュアルでも実行出来ると言った程度のUIを提供しています。ユーザーエクスペリエンスは高くありません。
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
1. Unattended Robotのため、他のプロセスが動いてもジョブを溜めておくことが出来きます。
1. プロセス作成時に引数の設定項目があり、設定しておくことができます。手動で実行時も設定して開始することができます。Assistantの様にユーザー個別に設定値保持はできません。
:::
:::note warn
注意
1. 実行にはUnattended Robotが必要です。
1. 実行させるロボットで他のジョブ（プロセス）が実行中の場合は、すぐには実行されません。既に優先度の高いジョブが溜まっている場合も同様です。
1. 実行する端末は一般的にロボット専用端末です。メッセージボックスなどを表示させる対話型プロセスでの利用はお勧めできません。 
:::


## 1-3 Process Launcher
Automation Cloudで、マニュアル実行のUIが新しく提供された「Process」画面を利用する方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/e7fc64ac-4492-2941-e0c3-6e26355422d7.png)

:::note info
特徴
1. Orchestratorに作成したプロセスをマニュアル実行するための優れたUIを提供しています。
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
1. Unattended Robotのため、他のプロセスが動いてもジョブを溜めておくことが出来きます。
1. 引数があった場合は、実行時に入力を要求するUIを提供しています。Assistantの様にユーザー個別に設定値保持はできません。
:::
:::note warn
注意
1. 実行にはUnattended Robotが必要です。
1. 実行させるロボットで他のジョブ（プロセス）が実行中の場合は、すぐには実行されません。既に優先度の高いジョブが溜まっている場合も同様です。
1. 実行する端末は一般的にロボット専用端末です。メッセージボックスなどを表示させる対話型プロセスでの利用はお勧めできません。 
1. Automation Cloudの利用が前提です。
:::

## 1-4 UiPath Apps
Automation Cloudのローコードアプリ開発「Apps Studio」で開発した画面からプロセスを実行する方法です。
UiPath Appsはユーザーエクスペリエンスに優れたカスタムアプリケーションを構築・共有できるローコード アプリケーション開発プラットフォームです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/146c69b0-5931-0b7e-420f-f3e3f6be406a.png)


:::note info
特徴
1. Appsの画面とロボットを接続し、Appsからロボット実行することができます。例えばロボットが取得した情報をAppsの画面に表示する、画面で入力した情報をロボットに引き渡して処理すると言ったことができます。
1. プロセスをデスクトップ上でローカルに実行するように設計されているアプリの場合は、Attended ロボットがトリガーされ、バックエンド システムと対話します。同様に、無人プロセスを実行するように設計されているアプリの場合は、Orchestrator を使用して Unattended ロボットでジョブが開始されます。

:::
:::note warn
注意
1. Appps利用はAutomation Cloudが前提です。ただしオンプレミスとのハイブリッドの構築は可能です。
:::


## 1-5 ファイルが更新・追加されたことを検知して実行
指定したファイルまたはフォルダー上の変更を監視し、トリガーが掛かると処理を実行すると言った方法です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/f30d16cd-f04b-1bca-90f4-50a820f7809a.png)

:::note info
特徴
1. Attendedライセンスを占有しないで常時監視できます。
1. 例えば、ある特定のフォルダーにドラックアンドドロップ等でファイルを格納するとトリガーが掛り、そのファイルを使って処理が実行されると言ったことができます。

:::
:::note warn
注意
1. Attendedライセンスでも常時監視できますが、ファイル変更でトリガーが掛り、無人で実行されていると言ったことは許可されていません。
:::


# 2. 自動実行メニュー
:::note
手動ではなく、設定した条件で自動で実行してほしい場合のメニューです。
:::


## 2-1 決まった「時間」に監視・処理を実行
決められた時間にUnattebdedロボットでプロセス実行するオーソドックスな方法です。例えば、下記の様な場合に用いられます。
:point_up:決まった時間に処理。
:point_up:決まった時間にシステムを見に行き条件を満たした場合に処理。
:point_up:決まった時間にフォルダやファイルを見に行き条件を満たした場合に処理。
:point_up:決まった時間に受信メールを見に行き条件を満たした場合に処理。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/f0283fcd-cbb3-3a50-fc62-ab7b4c9819bb.png)

:::note info
特徴
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
1. 毎分、毎時、毎週、毎月、もしくはcron式や非稼働日設定などを用いて細かく起動日時を設定できます。最短は1分周期です。
:::
:::note warn
注意
1. Orchestratorに接続されたUnattended Robotが必要です。
1. 実行する端末は一般的にロボット専用端末です。 
1. エラー通知や実行終了通知などは、メールやSlackなどを用います。
:::

## 2-2 外部アプリケーションからのAPIコールで処理を実行
例えば、PowerAutomate等の別のシステムからAPIでトリガーする、CI/CDパイプラインを構築し、jenkins等からAPIでトリガーする等と言った方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/7a9fb401-ba98-36c7-c8c8-5bd41e305f89.png)


:::note info
特徴
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
:::
:::note warn
注意
1. Orchestratorに接続されたUnattended Robotが必要です。
1. 実行する端末は一般的にロボット専用端末です。 
1. エラー通知や実行終了通知などは、メールやSlackなどを用います。
:::

## 2-3 Integration Serviceのイベントトリガーで処理を実行
Integration Serviceの外部アプリケーションのイベントをトリガーとして処理を開始する方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/b2461867-c15c-7f06-8a3c-62d30a26c7f3.png)

:::note info
特徴
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
:::

:::note warn
注意
1. Orchestratorに接続されたUnattended Robotが必要です。
1. 実行する端末は一般的にロボット専用端末です。 
1. エラー通知や実行終了通知などは、メールやSlackなどを用います。
:::

## 2-4 キューアイテムの追加で複数のロボットが分散実行
他のプロセスからキューにアイテムが追加されるとトリガーが掛かります。複数のロボットがキューに入っているアイテムを順次取り出して分散で処理する方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/818aba95-15bf-0f4f-a16a-66bd23a2e646.png)

:::note info
特徴
1. Unattended Robotで実行するため、ユーザーライセンスは不要です。
1. スケジュールで定期的にキューを見に行く必要はなく、キューにデータ投入された時にトリガーが掛かります。
1. キューにある大量のトランザクションを複数のロボットが分散で処理する場合に効果的です。
:::

:::note warn
注意
1. Orchestratorに接続されたUnattended Robotが必要です。
1. 実行する端末は一般的にロボット専用端末です。 
1. エラー通知や実行終了通知などは、メールやSlackなどを用います。
:::

# おわりに
RPAをあまり知らないユーザーがオーダーするメニューを想定したものなので、詳細は割愛し、図や特徴もポイントだけで表現して見ました。ざっと書いてみましたが、UiPathが提供している実行方法って多いですよね。ユーザーヒアリングの際に提示するメニューとして、ヒントになればと思います！