【UiPath】Orchestratorことはじめ

最近流行りのRPAブームに乗っかってますｗ
BlueprismからUiPathを学習中ですが、ロボットの集中管理をしたい場合、UiPathでは「Orchestrator」を導入する必要があります。
Blueprismでは標準装備だった機能なのですが、Orchestratorの使い方をざっくりまとめてみました。

公式ガイドはこちら
https://orchestrator.uipath.com/lang-ja/docs

##テナントを登録する
https://demo.uipath.com
にアクセスして、テナント登録します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/6c57c4d2-128b-969d-99ff-3205788d05b2.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/72f44228-bb42-5b8b-d79f-029afe64f5ca.png)

###2018/10/11 追記
テナント名を忘れてしまい、ログインができなくなってしまった場合、
新しいテナントを登録してローカルPCを接続しようとしても、ライセンスエラー？のため接続ができませんでした。おそらく複数のテナントから同一のPCに接続することを許していないと思われます。
どうしようもないので、テクニカルサポートに問い合わせたところ、
>
こちらについては大変恐れ入りますが、テナント名を思い出していただき、ログイン頂く他ないかと思います。
こちらの利用はログイン画面下に記載させていただいている
Terms and Conditionsのリンク先に記載させて頂いている
12. No Maintenance.に書いてあるとおり、大変恐れ入りますが、原則サポートをいたしておりません。

とのことなので、
**テナント名は絶対に忘れないように控えておく**ようにしましょう。
なお、7日間でテナントは自動的に削除されるらしいので、7日間待ってみることにします。。。

##マシンを登録する
Orchestratorが動作するマシンのプロビジョニングを行います。
左メニューの「マシン」を選択後、図のように箱マークのボタンをクリックします。
（今回は「標準マシン」を登録）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/374c46d4-21d2-ee52-2f21-468184298f24.png)

マシン名を入力して「プロビジョン」ボタンをクリックします。
ここで登録するのは「Orchestratorが動作するマシンのマシン名」です。

**マシン名は「コントロールパネル→システムとセキュリティ→システム」の「コンピューター名」に表示されている名前を入力してください。**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/9d246339-19c8-2101-ef76-040edb2a15f3.png)

マシン登録後、後ほど使う「マシンキー」をクリップボードに保存しておきましょう。
登録されたマシンの行の右端の！ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/de0b4765-26e4-93a9-b07f-d17959b78637.png)

マシンキーの右横のボタンをクリックして、クリップボードに貼り付けておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/6676592c-a38e-1a2e-1fe8-f85fbba7751c.png)


##ロボットを登録する
Orchestratorが認識するロボット端末を登録します。
左メニューの「ロボット」を選択し、今回は「標準ロボット」を選択してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/25154034-fa17-69f4-b0d6-cdbaa13ac703.png)

マシン名はマシン登録時に登録したマシン名を選択、
ドメイン\ユーザー名とパスワードは、ロボット端末（=ロボットが動作するPC）のログインIDとパスワードを入れてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/582592d8-34ba-d113-a418-903847c9a025.png)

ロボット登録後、まだロボット端末との接続が確立していないため、ステータスが「切断」になっていると思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/e025c325-5ab6-a345-6d0c-940ac7236b60.png)

##ロボットグループを登録する
ここでいうロボットグループというのは「環境」と思ってもらえると分かりやすいです。
開発環境、ステージング環境、本番環境などに分ける用途に使います。
上部の「ロボットグループ」を選択し、右端の+ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/40ec1c18-e390-ac45-7773-14bc3b06b2f4.png)

名前を入力して、「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/29b586b7-1690-8d90-b861-80fff7b6a7f2.png)

続いて、設定したロボットグループに割り当てるロボット端末を設定します。
ロボットにチェックを入れ、「更新」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/44cd8dc1-c95e-7e04-8ac9-f8b6f6021944.png)


##UiPath RobotとOrchestratorを接続する
ロボット端末とOrchestratorの動作するPCを接続します。
ロボット端末の「UiPath Robot」を起動させます。
UiPath Robotの場所がわからない場合は、スタートメニューの検索欄に「UiPath Robot」と入力すればヒットするはずなので、それをクリックして起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/0f28baea-b7a0-78fa-0857-401e86c02758.png)

起動すると、タスクバーの右端の常駐アプリが表示される箇所にUiPath Robotが常駐しているはずです。
アイコンを右クリックして「設定」をクリックしましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/39d44431-e75a-0164-86af-fa4b9b09fd3b.png)

マシン名はマシン登録時に登録した名前（Orchestratorが動作するPC名）を入力します。
Orchestrator URLはデモサイトのURLを入力します。
マシンキーは、クリップボードに貼り付けていたマシン名をそのままペーストします。
入力後、「接続」ボタンをクリックし、ステータスが「接続中」となれば接続成功です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/8b9f6279-9c7c-d88a-72a6-f62ef9737ad1.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/a8988241-e962-f23c-1a05-f19f0f28191f.png)


接続に成功すると、常駐アプリアイコンが青色に反転するようです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/4b3cf4cf-c463-0665-a60c-919a8dbe870b.png)

Orchestratorの画面に戻り、ロボット画面を表示すると
ユーザーネームの左に緑の丸が表示されていると思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/4d7570c1-e84c-57a8-2b74-ae9ba4accc04.png)

##プロジェクトをOrchestratorにパブリッシュする
Orchestratorで動作させたいプロジェクトをUiPath Studioで開き、画面上部の「パブリッシュ」ボタンをクリックする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/f5d5a9a9-9806-f965-e441-1e1ecaa67ff4.png)

Orchestratorに接続されている場合は、パブリッシュ先に「Orchestrator」が表示されていると思います。
バージョンを確認した後、「パブリッシュ」ボタンをクリックすると、Orchestratorにプロジェクトがアップロードされます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/5fcb1342-b656-555c-712a-8e7c5b5a20b7.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/52fafdc2-cc34-238b-50ff-ece83d9622f5.png)

ちなみにOrchestratorに接続されていない状態だと、パブリッシュ先は「ロボットデフォルト」となり、ローカルフォルダにnupkgファイルが配置されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/a17b2b04-efdd-9029-255c-45e541b90dd1.png)

Orchestratorの画面に戻り、左メニューから「プロセス」を選択し、
画面上部の「パッケージ」タブをクリックします。
すると、先ほどパブリッシュしたパッケージが一覧に表示されていると思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/762a6cfd-20f2-5842-04fd-e90918c40f60.png)

##プロセスを登録する
プロセスとは、パッケージと環境（=ロボットグループ）の紐付きを表す単位のことです。
例えば、ロボットグループ「開発環境」にはパッケージpkg_A、pkg_B、pkg_Cをプロセスprocdev_A、procdev_B、procdev_Cとして登録。
ロボットグループ「本番環境」には、パッケージpkg_Cは開発中のため、パッケージpkg_A、pkg_Bのみプロセスprocprod_A、Procprod_Bとして登録する、といったイメージでしょうか。

「プロセス」タブを選択し、画面右端の+ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/e76d3fae-2a97-2e09-12d6-1d5708c4e61c.png)

パッケージの指定、実行させるパッケージのバージョン、ロボットグループを入力します。
実行時に入力パラメータが必要な場合は設定します。
その後、「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/cc7ca71f-c004-3979-6cb5-a598feb2af23.png)

登録後は以下のように表示されるはずです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/415802f9-f3ba-a7dd-762b-553e1dffd121.png)

##ジョブを登録、実行する
ジョブとは、プロセスの実行単位のことです。
ジョブを登録して実行することにより、対象のロボット端末でプロセスが実行されます。

左メニューの「ジョブ」を選択し、画面左の▶ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/075007fc-b566-14c0-3a44-1647ab783317.png)

プロセスには、「パッケージ名_ロボットグループ名」という形式で表示されます。
実行対象のプロセスを選択し、今回は「特定のロボット」を選択します。
選択後、ロボット端末が表示されるので、ロボット端末を選択して「開始」ボタンをクリックします。
すると
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/eab9c4d1-a18f-9e51-f726-8606095a0102.png)

プロセス実行前はステータスが**「保留中」**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/63e5c6c4-ae6f-2076-7083-062ee2a3c1de.png)

プロセス実行中は**「実行中」**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/6700f512-a00f-aca6-b6a1-480adbf2b607.png)

プロセス実行後、正常に終了した場合は**「成功」**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/5f264d85-62af-ac46-f788-63aedebc05b8.png)

エラーとなった場合は**「失敗」**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/186221/0c55adb8-71c8-e045-41e8-7e77ce538bfd.png)

##ひとりごと
以前使っていたBlueprism（以下、BP）とどうしても比較してしまうのですが、画面インターフェースとしてはBPより分かりやすいと思いました。

ここでは紹介していない**スケジュール機能**では、動的にロボット端末を割り当てて実行できるようです。
それがロードバランシングしてくれるのか、ロボットグループ配下の端末が全て実行中だった場合にどのような挙動を示すのかなど、検証してみたいことが山積みですね。。。

また、BPでいうところの「環境変数」がUiPathでは**アセット機能**として搭載されており、なんとロボット端末ごとに値を変更できます。BPはそこまで柔軟ではなく、環境ごとに変数値を変える必要がありました。。。
これは本番リリース時等に特に神経を使うところでもあったので（本番環境に開発環境用の変数値を使っていないかチェックする必要があったり）、かなり助かる機能ですね。

次は**「ReFramework」**についてまとめてみたいと思います。