UiPath Orchestratorでパッケージとライブラリを管理・利用する

初めて記事を書きます。

**2020年5月15日　UiPath Friends 東京 Orchestrator ハンズオン勉強会 パート2**
https://qiita.com/masatomix/items/cb9c265f1d8010bed50b
に参加させていただき、たくさんの刺激を受けました。

こういった場で学んだ知識はどこかに残していくべきだと思い、他の方たちと同様、Qiita上で記事を書くことにしました。
また、**職場のメンバーの人材育成やUiPathに関する知識の継承をどのように行っていくべきか常日頃悩んでいたのですが、インターネット上に書いておくと情報はなくならないな、と思った**こともきっかけの一つです。
Qiitaの記事を、このまま、研修や引継ぎに利用していけるように意識して書いてみました。

なお、私はUiPathアカデミー上級コースは修了済ですが、**UiPath開発経験は皆無**と言っていいです。（2020年5月16日現在）
**間違っている部分もあるかもしれませんので、皆様、大目にみてください。。。**

以下の記事は、RPAの大規模展開を見据えたときに、RPA開発・保守の効率性が最も大切だと私なりに考え、情報収集した結果や様々な方に教えていただいた内容を整理したものとなります。

それでは、**「パッケージ（プロセス）」と「ライブラリ」をOrchestratorで管理し、利用していく方法**について、解説していきます。

# 1.はじめに
## 1.1「プロセス」とは
- 自動化する業務ごとに作成します。（Robotに実行させたいジョブの単位に作成）
- 「プロセス」を作成した場合、Main.xamlが内包されたフォルダが作成されます。
- Orchestratorへパブリッシュすると、「パッケージ」として管理されます。

## 1.2「ライブラリ」とは
- UiPath Studioにて複数の「プロセス」を作成する際、例えば「システムへのログイン」などの工程に関する各種アクティビティ（"クリック"や"文字を入力"など）を毎回設定していては開発に時間がかかります。また、xamlファイル単位に行う単体テストも毎回行う必要があります。
- これらを省力化するために「ライブラリ」を作成し、各ワークフローにて「共通部品」として使用（Studio内でアクティビティとして使用）できます。
- 「ライブラリ」を作成した場合、NewActivity.xamlが内包されたフォルダが作成されます。
- Orchestratorへパブリッシュすると、「ライブラリ」として管理されます。

# 2.Studioで「プロセス」を作成⇒Orchestratorへパブリッシュ⇒Robotでジョブを実行
## 2.1「プロセス」を作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4dfe64ff-bb90-a767-6390-c66b262dc1ca.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/9b280bd8-709c-0e07-2dc3-5bd3c534e54b.png)

**↓作成されたフォルダ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/3d42d27c-dd65-f7d4-4dbe-7a9d2f469f3c.png)

**↓フォルダ内の状態**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/602bb052-e342-ef3e-fca4-caa33fe77d46.png)

## 2.2 ワークフローを作成し、パブリッシュする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/30c4b988-0cc9-7163-7a8b-bcb4675ddb27.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/88913c13-c5e5-c7fb-e4d8-6e70bdb20a2a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/a9f962da-bf90-c7f2-5cce-420865ce6de9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4bbb79b4-afac-ef45-bf49-88935e07f04f.png)

## 2.3 Orchestratorを確認し、「プロセス」を追加する
**↓「パッケージ」としてOrchestratorにアップロードされた状態**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/3b7aa490-662f-902d-7cee-2751696f1491.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/e7c63635-7f51-d225-be89-f7ed282f966d.png)

**↓この時点におけるRobotの状態**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/97cab0bb-d451-bd36-8dcf-d43816b28fd4.png)

**↓「プロセス」を登録**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/1c7b80cb-a374-405c-9fe5-ecaa4529d0c9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4c891dfd-cda8-f8f8-34f8-f0c83d3fa8f0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/c3db16df-2e13-4727-1d98-2eb2cd34b108.png)

**↓「プロセス」登録後のRobotの状態**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/258559ca-ecd6-9ae2-2c18-4434cf91000d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/f7bd8c8b-336e-6b0a-34b6-2ccba2b28666.png)

# 3.Studioで「ライブラリ」を作成⇒Orchestratorへパブリッシュ⇒Studioで共通部品として利用
**【注意】Community Editionの場合は、以下のとおりOrchestratorの設定変更を事前に行ってください。また、StudioのインストールされているPCを一度再起動しておいてください。**

**Orchestratorの設定変更**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/24637d98-865a-1ede-45f9-9da6c170c247.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/12671024-3f82-40cb-62e9-db2da2c71ec7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4324f4f0-91dc-4e21-d896-181553162365.png)

**↑事前設定はここまで**
---
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/7791de46-abd7-c379-b8ec-bea38cb7799d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/d74886c0-00d2-001a-dd42-0d6027f15a5f.png)

**↓作成されたフォルダ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/bd28821b-4722-2d2c-4e42-48a3bf6d000d.png)

**↓フォルダ内の状態**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/3be11e1a-7f5b-cb37-bfbc-5a6852aa225b.png)

## 3.1 名前を変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/dc6f9d71-d2c2-b5f1-a7b5-6207dcec6fc6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/e62397b6-a45d-75c2-4b3d-1b00b2769cc5.png)

## 3.2 ワークフローを作成し、パブリッシュする
**UiPathアカデミーからダウンロードできる「UiDemo.exe」へログインする共通部品を作成してみます。**

**↓UiDemoログイン画面（UsernameとPasswordを入力してLog Inをクリック）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4dc31e30-c398-9d65-e7b1-a65eda516b4e.png)

**↓ワークフローの作成**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/5b8ce9fd-7797-bf6d-9b7f-62b94f4b191c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/f97c45d3-5e72-5e22-1b9f-6657c73f413f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/9483dca6-2b85-030d-74bc-1d819f62e366.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/b6265040-ceba-acab-c107-342a7c1730b6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/6c22ae48-29de-4273-cbc3-9015f5a00ff6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/2dc1e824-8d62-3df0-6961-91939e167eb7.png)

## 3.3 Orchestratorを確認し、Studioでパッケージ管理する（取り込む）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/6c84a889-0e66-93e4-7fc3-f4e3b9128d63.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/b82f9193-6a93-fb9e-c6b3-0b664539de5d.png)

**↓ ２章で作成した「XXX申請書入力業務」のプロセスでこのライブラリを使用する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/68fc21a2-7266-5c4e-2bf9-ca143586f4f4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/934b7d4b-3eb3-7ebd-da19-1b3ab6750d10.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/bdfa9a1c-e534-614e-d6e5-2eecebef4fd9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/4959eeb4-2ebd-7c54-5598-58eade3e0d9a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/287bed48-0627-4d93-5d00-c40a51da91a5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/f9acb020-d23d-ad65-6f58-218b54391780.png)

## 3.4 ログアウトの共通部品も作成し、アクティビティとして利用してみる
「UiDemo.exe」からログアウトする共通部品も作成してみます。

**↓UiDemoログアウト画面（Exitをクリック）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/b225ab07-e5cc-6233-0038-ccc0cddb288c.png)

**↓ワークフローの作成**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/eea05f9c-5063-1382-5b35-8dbc005ebb8b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/ce2e358c-0fb5-e171-dda5-7c93079a0f7b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/49856be1-4690-176d-a30f-700d27642d0c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/6b9f7377-da5b-b0ba-5b1c-1c4920e313e8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/e860815e-b851-2a4b-7e79-d957aa215103.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/e64890f8-4138-e226-a378-2d2494b5bf49.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/91fe9759-1cbe-7695-c3d0-85732fa8fa16.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/680c5808-2b36-f722-e7c7-174ffc491d13.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/9cbefbcb-e142-467c-b229-0894e8104ba9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/8f661f36-d6a6-acf5-c8b9-a71263e1d1b7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/f25d7978-1a90-46c2-d417-9686f1a69369.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/7e7df8f1-7c76-7709-610e-4645d4482a39.png)

**これで、ログインからログアウトまでの一連の動作を自動化することができました。**

# 4. Orchestratorからパッケージをダウンロードし、Studioで再利用する
**【注意】以下に記載する方法については「プロセス」（パッケージ）のみが対象です。
（「ライブラリ」（アクティビティ化したもの）はパブリッシュ時にxaml形式からdll形式に変換されているため、Studioでは再利用できません。）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/5bfb020a-4a89-ebb0-3c15-c267083ffc20.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/6fad35cc-fd4b-1bcc-84f3-2ab451e44928.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/b0119f04-ff8e-e1f4-7fea-8752478cfab6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/ff5fa905-5a51-7bf6-ceff-68e8501c8b75.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526899/0a1092e4-46e4-9ce9-4cea-a4f846b2d85b.png)

# 5.　最後に
いかがでしたでしょうか。
バージョン管理ができ、また、共通部品をアクティビティとして利用できるのはOrchestratorの魅力的な部分だと思います。
**RPAを大規模で展開していく場合、フォルダ上で「プロセス」や「共通部品」のバージョンを管理していくのはいずれ限界が来る**と思います。Orchestratorは積極的に利用していくべきですね。
それにしても４章の注意事項にも記載していますが、**一度パブリッシュした「ライブラリ」についてxaml形式に復元ができないのは、少し残念です。**共通部品はフォルダ管理を続けていくしかなさそうです。
（xamlのままパブリッシュする方法も選択できればいいのですが。。。）

**【2020年5月17日追記】**
「共通部品はフォルダ管理を続けていくしかない」と記載しましたが、Gitなどを用いることで正しく管理できることを知りました。
（当方、プログラミング経験もシステム開発経験もありませんので、Gitというものを利用することで管理できることを知りませんでした。コメントをいただきありがとうございます。）
一元管理、という意味で、OrchestratorでもGitのような開発ファイルのバージョン管理機能があればいいな、と改めて感じました。