【UiPath】オブジェクトリポジトリへの登録方法まとめ

# はじめに

みなさん、こんにちわ！

この投稿は[UiPath Advent Calendar (produced with UiPath Friends) Advent Calendar 2021](https://qiita.com/advent-calendar/2021/uipath)の17日目の投稿です。

2020.10から登場したオブジェクトリポジトリですが、今までの開発アプローチとは少し異なるため、少し取っつきにくいと感じた方もいるのではないでしょうか。2021.10からは、従来の開発方法に近いアプローチでも利用可能になったので、この機会に、ご紹介したいと思います。尚、オブジェクトリポジトリって何？って記事は、他でもたくさん投稿されているので、ここでは割愛します。

##前提
オブジェクトリポジトリはモダンデザインの利用が前提です。下記のいずれかで設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/f1c52bff-e2c4-ecc1-b448-026aa8d992c5.png)

##レコーディングしながらオブジェクトリポジトリに登録
2021.10ではレコーディングと同時に自動的にオブジェクトリポジトリへ登録されます。
つまり、オブジェクトリポジトリへの登録操作が不要と言うことです。

#####レコーディングするとオブジェクトリポジトリに自動追加！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/c96dcfcc-25d6-1dc1-00d5-29f8b75ea346.png)

##後からオブジェクトリポジトリに登録したい場合
アクティビティのメニューからオブジェクトリポジトリに追加できます。つまり、モダンデザインを利用していれば、後からでもオブジェクトリポジトリの利用に変更できると言うことです。将来的にオブジェクトリポジトリも考えたいのであれば、まずはモダンデザインの利用をお勧めします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/d0a58364-0be1-2a40-7e12-4e4c94c4bfad.png)

##アクティビティの要素指定で登録したい場合
「オブジェクトリポジトリの使用を強制」をONにすると要素の指定でオブジェクトリポジトリに自動登録されます。ここで注目すべき点は2020.10で「オブジェクトリポジトリを使用」と言う文言から「オブジェクトリポジトリの使用を強制」と言う文言に変更されていることです。ここを有効にしなくても、前述の通り、オブジェクトリポジトリを使用することはできると言うことです。ただ、オブジェクトリポジトリを利用する前提であれば、要素の指定で自動的に登録される、こちらの方が利便性が上がりますね。尚、この設定はワークフロー作成中でも、切り替え可能なので、試して見てください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/b1ee7034-3a5d-5820-3850-1c01cde3d733.png)

##先にオブジェクトリポジトリに登録しておきたい場合
オブジェクトリポジトリパネルで「要素をキャプチャ」>「記録を開始」でまとめて登録して行きます。この方法はオブジェクトリポジトリが登場した2020.10から使えるオーソドックスな方法ですね。

#####要素のレコーディングを開始！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/30da97e0-ba3d-1811-fdde-394714d17856.png)
#####要素を指定して、次々とオブジェクトリポジトリに追加！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/146d156e-7f96-2a57-ee02-b587a3c6b523.png)

##要素を1つ1つ手動で追加するのが面倒な場合
2021.10から指定したアプリケーション内（表示されている画面）の「すべての要素をキャプチャ」機能が搭載されています。要素を1つ1つ手動で追加する必要がなくなるため、オブジェクト リポジトリの登録にかかる時間を大幅に短縮できるとされてます。ただ、全ての要素なので、ブラウザのタブとかも全部ですね（笑）全て解除して、ほしい要素を選択し直すことは可能ですが・・・尚、コンピュータービジョンテクノロジーを活用しており、アンカーがうまく設定されていない場合もあるので、今後の精度向上に期待したいところです。
#####「すべての要素をキャプチャ」開始！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/01300804-2e0b-085b-0e1b-95f800a85a9c.png)
#####コンピュータビジョンで画面の要素を探し出し、全ての要素を自動的にターゲット！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/bf514a01-2666-a1f4-e7c8-dae8205418d7.png)
#####画面の全ての要素がオブジェクトリポジトリに登録される！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/67b9e8a0-b610-e326-46a2-85802045c990.png)

##登録したオブジェクトリポジトリを、すぐ展開したい場合
オブジェクトリポジトリのパネルからUIライブラリのプロジェクト生成へダイレクトに遷移可能になっています。プロジェクト間を跨ぐ展開もシームレスになりますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/7691fec4-0ad8-f126-27ee-950cf857000a.png)

##アプリケーション記述子のツリーを別の場所にコピー
プロジェクト内でも、プロジェクトを跨いでのコピーも簡単にできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/04f8688e-656a-68ad-3fbc-abf441e2844c.png)


# おわりに
如何でしたか？オブジェクトリポジトリを使うとセレクターの変数が使えないのでは？と思っている方もいますが、ちゃんと使えます。2021.10からオブジェクトリポジトリのハードルも少し下がったと思うので、これから利用するプロジェクトも増えてきそうですね。