【UiPath】リモートデバッグを使ってStudioと別のPCでテストする

# はじめに
前々回と前回の記事では、UiPathをMacOSで動かすところまでを説明しました。

https://qiita.com/shuy/items/d3b020bc02b1b5313c99

https://qiita.com/shuy/items/ac97ffb5ac6eb53613e1

Macで動くワークフローを作る際、StudioはWindowsとなるため、両環境の差異に注意して実装する必要があります。
そこで、「リモートデバッグ」という機能を使って、Studio（Windows）から別のPC（Mac）へ遠隔操作によるデバッグを行ってみます。


# つかうもの
※ クラウド環境は2022年10月時点のもの
* UiPath Assistant　v2022.10-beta　　※ Mac版
* UiPath Studio　v2022.4
* Automation Cloud（Orchestrator）　　※ Community版


# 接続方式
リモートデバッグ機能には、2つの方式があります。

1. リモートマシン接続
1. Unattendedロボット接続

「リモートマシン接続」は、ローカルマシン（Studio）とリモートマシン（デバック対象のPC）を直接TCP/IPで接続する方法です。リモートマシンのIPアドレス（またはホスト名）とポート番号を指定して、接続を確立します。
同一ネットワークセグメント内のPC同士であれば、使いやすい方法かと思いますが、インターネット経由で離れたネットワークを繋ぐ場合は、もう1つの「Unattendedロボット接続」を選んだ方がよいかと思います。

「Unattendedロボット接続」は、Orchestratorを仲介して、リモートマシン（デバック対象のPC）をUnattendedロボットとして接続する方法です。パブリッシュやプロセスを作成などの手順は必要とせず、デバッグ対象のPCへワークフロー（パッケージ）を自動で転送し、実行してくれます。OrchestratorとUnattendedのライセンスが必要となります。

簡単なイメージを作ってみると、こんな感じになるかと思います。
![接続方式1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/f924a77d-3def-cd41-a345-64d65e54bfea.png)

今回は、「Unattendedロボット接続」を使ってみます。

:::note info
リモートマシン接続でもチャレンジしましたが、エラーを解消できなかったので、また機会があったら記事にします。
:::


# Unattendedロボットを登録
テナントメニューの「アクセス権を管理」からデバック対象のPCにログインするためのアカウントを選択し、Unattendedロボットを有効化します。
ユーザ名、パスワードを入力して保存します。

![OC設定1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/405cde9e-93f3-7401-bba4-f859bef3d17a.png)

:::note info
画面上、所々「Windows」となっていますが、Mac PCをUnattendedロボットとして使う場合も設定は、Windowsの時と同じです。
:::

次にフォルダーメニューの「設定」からデバック対象のマシンを登録します。その際、ランタイムライセンス「Production(Unattended)」を1以上に設定します。

![OC設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/0aadc2f3-3ce8-4693-5188-2c66886767c4.png)


# リモートデバッグ設定
Studioを開き、デバッグタグの中の「リモートデバッグ」を展開すると設定メニューが出てくるので、これを選択します。
    
![Studio設定1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/4afab125-c0aa-5be4-5180-2d3d25ea0733.png)

接続の種類は「Unattendedロボット」、ユーザーとマシンは先ほどOrchestratorで設定したものを選択します。

![Studio設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/afd5d46c-990b-4a39-6baf-4d41e917238d.png)

「リモートデバッグ」のアイコンを押すと、アイコン全体が選択された状態（色がグレー）になるので、これでリモートデバッグの設定は完了です。
通常のデバッグ（ローカルデバッグ）に戻す場合は、「リモートデバッグ」のアイコンをもう一度押します。アイコンの選択状態が解除されます。

![Studio設定3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/240e094f-7c2e-6f8d-016b-97c69c511769.png)


# リモートデバッグを試す
デバッグの実行の仕方は通常の操作と同じです。
リモートデバッグ（Unattendedロボット接続）の場合、Orchestratorを経由して、ワークフロー（パッケージ）をデバック対象のマシンに転送するため、立ち上げに多少時間がかかります。焦らず待ちましょう。

![デバッグ1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/fe97c3f4-dc1b-359b-3b10-622e4fd7a7b1.png)

デバッグが始まると、画面上は以下のようになります。
ステータスバーが緑色になり、いつものローカルデバッグと見分けがつくようになっています。
![デバッグ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/c0f82c26-faf9-0c60-d681-bd16be93967a.png)

↓ いつものローカルデバッグはステータスバーがオレンジ色
![デバッグ3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/cf7873ff-24f1-81af-ea07-ef6bd4d9ddb9.png)


StudioのPCとデバッグ用のPCを並べてみると、動きが連動しているのが分かります。
ブレークポイントで止まり、スッテプインを押すと次のアクティビティまで動きます。

# おわりに
RPA開発では、開発するPCと本番で動かすPCの環境が違っていることが割と多くあり、本番で動かした際、環境差異によるエラーが発生することもあるかと思います。
リモートデバッグを使えば、デバッグ段階で環境差異によるエラーを潰しこむことができるので、積極的に活用したい機能かと思います。

# 参考
https://docs.uipath.com/studio/lang-ja/docs/remote-debugging