UiPath実践ーロボットの開発から配布と実行までの流れー

# はじめに

本記事はUiPathの使い方ではなく、ロボットの開発をした後にどの様にロボットを使っていくのか運用のフローをまとめてみました。
UiPathについては知っているが、導入後の運用イメージが分からない方など、
導入を検討されている方へ参考になればと思います。

環境は以下をイメージして記述しております。

* 開発端末：UiPathStudioを導入。ロボットの開発を行うための端末。
* 実行端末：UiPathRobotを導入。出来上がったロボットを実行するための端末。

※Orchestratorは使用していない環境。
※UiPathRobotは20.10からUiPathAssistantへソフト名が変更となったようです。
※ライセンス版の環境で解説するようにしておりますが、手元にコミュニティ版(2020.10.0-beta.1008)しかなかったため画面はそちらとなっております。ご容赦下さい。


# 運用の流れ

流れは以下のようになります。
一つずつ解説をしてまいります。

1. UiPathStudioでの開発
1. パブリッシュ
1. nupkgの配布
1. ロボットへのライブラリの追加
1. 実行
1. ログの確認

## UiPathStudioでの開発

★開発端末での作業
ロボットの作成(作業内容を記述したワークフロー)はUiPathStudioで行います。
開発の仕方はUiPath公式のアカデミーを受講されるか、他の記事を参照して頂ければと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/51490986-0976-e77a-4f57-72838a43022f.png)


なお開発をこれまで行ったことがない方がRAP開発することもあると思いますが、そういった方がよくやってしまう事として開発環境と実行環境での解像度やソフトのバージョン違いの考慮です。
開発で上手く動作するように開発を行っても、実行環境では解像度やバージョンが異なっていた場合正常に動かないことがあります。
開発環境と実行環境の違いがない状態で開発することがベストですが、出来ない場合は考慮した上で開発するように気をつけてください。

## パブリッシュ

★開発端末での作業
UiPathStudioで開発が終わったら、右上にあるパブリッシュボタンをクリックしロボットを配布する準備をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/2b123647-5f8f-058c-c70b-66a49c0a0aa1.png)


各項目に記入しパブリッシュを行うとダイアログが表示されて、表示されているフォルダパス先にロボットファイル(拡張子nupkg)が出来上がります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/a8077df7-6265-f3bd-6300-1de4f8e9bab1.png)
 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/4276520c-8205-6e3c-7e48-76b2a2e7941f.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/c25ecddd-7d0d-d90a-c4f8-fd50c5a8875a.png)


このファイルをコピーして実行端末へ配置します。


## nupkgの配布

★実行端末での作業
開発端末で作られたロボットファイル(拡張子nupkg)を配置します。
配置場所はデフォルト設定の場合は%programData%\UiPath\Packages\(例：C:\ProgramData\UiPath\Packages)となります。

次にUiPathRobotを起動し、利用可能なプロセスに追加したロボットが表示されているはずなのでインストールを行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/643fbe70-85d6-3b55-0518-e444a9d6869e.png)


## ロボットへのライブラリの追加

※この項目は以下に該当しない場合は不要な手順となります。
・ロボット内で独自のカスタムアクティビティを使用している
・実行環境がオフライン環境


開発端末の開発時に追加でライブラリを使用していた場合、実行端末にも同じライブラリを入れる必要があります。
(ロボットファイル内にライブラリは同梱されないため)
マーケットプレースで配布されているライブラリで、実行端末がオンライン状態である場合、自動で必要なライブラリをダウンロードしてきます。
しかし、端末がオフライン状態である場合やマーケットプレースに公開されていない独自のライブラリ(カスタムアクティビティ)の場合は、手動で入れてあげる必要があります。

★開発端末での作業
使用したライブラリのnupkgファイルをすべてコピーして実行端末へ移動させます。
nupkgファイルの展開先パスである%USERPROFILE%\.nuget\packages(例：C:\Users\[ユーザ名]\.nuget\packages)配下にあるので、当該ライブラリのフォルダを開き、使用しているバージョンのフォルダの中のnupkgファイルをコピーして実行端末へ移動させます。

```console
%USERPROFILE%\.nuget\packages
　├ライブラリフォルダ
　　├バージョンフォルダ
　　　├nupkgファイル　←このファイルをコピー
```

> 
// 補足
通常マーケットプレースから追加したライブラリはUiPathStudioのexeファイルがあるフォルダ(例：C:\Program Files (x86)\UiPath\Studio)配下のPackagesに置かれるためこちらからnupkgファイルをコピーすることも可能です。
注意としては独自ライブラリを追加する際に、パスを指定して追加していた場合はこのフォルダ内には含まれていないので、置かれている場所からコピーすることを忘れないようにして下さい。
個人的には前述したnupkgファイルの展開先である、%USERPROFILE%\.nuget\packagesからコピーするのが分かりやすい気がします。

★実行端末での作業
UiPathRobotのexeファイルがあるフォルダ(例：C:Program Files (x86)¥UiPath¥Studio)の配下のPackagesフォルダを開き、開発端末から持ってきたnupkgファイルを配置します。


## 実行

★実行端末での作業
UiPathRobotを起動します。
ロボットの開始ボタンをクリックします。
ここで追加漏れのライブラリがあると「不明な型’[アクティビティの情報]'を作成できません。」というエラーメッセージが発生するので、前の手順に戻ってライブラリを実行端末に入れて下さい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517685/64dfe077-7a3b-7711-d865-868e804bc5fe.png)

>
//補足
画像に表示されておりませんが、ロボットにカーソルを当てると実行ボタンが表示されます。


## ログの確認

ロボットを使用し始めると、様々な原因でエラーとなることがあります。
そういった時にはログを見ましょう。

★実行端末での作業
%USERPROFILE%\Local\UiPath\Logs(例：C:\Users\[ユーザ名]\Local\UiPath\Logs)配下の[日付]_Execution.logファイルを開きます。
1行に色々な情報が含まれているため、以下のようにカンマ(,)で改行すると見やすくなります。

```json
17:31:54.0972 Info {
"message":"サンプルロボット の実行が開始されました。",
"level":"Information",
"logType":"Default",
"timeStamp":"2020-09-17T17:31:54.0514209+09:00",
"fingerprint":"73007875-072d-4821-abce-45ab417becb7",
"windowsIdentity":"[マシン名]\\[OSユーザー名]",
"machineName":"[マシン名]",
"processName":"サンプルロボット",
"processVersion":"1.0.0",
"jobId":"31843449-f63c-4c24-893b-ded832b27046",
"robotName":"SHIHO'sROBO",
"machineId":0,
"fileName":"Main",
"initiatedBy":"StudioPro"
}
```

Messageには処理の内容やエラーメッセージが記述されているので、ここを読むことでどこまで処理がされたのか、何でエラーが起きたのかを知ることができます。
この情報をもとに開発端末のUiPathStudioでワークフローを分析し原因を特定する、というのが調査の流れになります。

なお規模の大きなロボットでは複数のxamlファイルを呼び出す作りとなることがありますが、そういった時はログ内のfileNameの項目を見ることで、どのxamlファイル内で出力されたログかを知ることができます。

# 以上です。

以上が実際の運用に近い流れになります。
UiPathOrchestratorを導入することでパブリッシュしたワークフローの管理や実行端末への配布が楽にできるようになりますが、費用が掛かりますので人の手に頼ることになるかと思います。
ご参考になれば幸いです。