【UiPath】テンプレートを作成して効率化しよう！




## はじめに

UiPath Studioでテンプレート設計を試してみたので手順を紹介します

### この記事でできること


- UiPath Studioでテンプレートを作成して利用できる
- ローカル環境でのテンプレート作成ができる
- **Orchestrator**環境でのテンプレート作成ができる


### この記事の対象者


- UiPath Studio開発者



### 動作環境


- Windows10
- UiPath Studio v2023.10
- UiPath Orchestrator管理下の組織


## テンプレートとは

新規プロジェクトを作成する時、あらかじめ用意されたアクティビティやフローを使用して開発できる仕組みです。
UiPathでは**フレームワーク ⊂ テンプレート**のようです。

標準では`Robotic EnterPrise Framework`などが用意されていますが、初心者にとっては非常に難解です。
開発チームのレベルや組織の実情に合わせたテンプレートを用意するのが良いでしょう。

## テンプレートの作成方法

目的に応じて2通りのやり方があります。

- **ローカル環境**にパブリッシュして個人レベルで使う
- **Orchestrator環境**にパブリッシュして開発チーム全体で使う

まずはローカル環境のやり方に慣れてからOrchestrator環境に移行すると良いでしょう。

## ローカル環境のテンプレート作成方法

### テンプレートを作成する

#### 新規プロジェクトとしてテンプレートを作成する

UiPath Studioのスタート画面から`テンプレート`を選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/d1a76e50-105a-3c6e-eecb-43e3762c60ad.png)

#### テンプレートの情報を決める

`新しいテンプレート`が立ち上がるので以下を入力していきます。
- `プロジェクトの種類`：`プロセス`
- `名前`
- `説明`
- `場所` テンプレートの元となるxamlファイルが保存される場所です
- `対応OS`
- `言語`

入力できたら`作成`しましょう。
 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/d8303808-d880-af5c-7a8d-1029dba4fe2d.png)

#### テンプレートの中身を作成

テンプレートプロジェクトが立ち上がりました。ここにテンプレートにしたいアクティビティなどを作り込んでいきます。
今回は適当に`メッセージをログ`を追加してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/11c340e2-9e1e-2901-6557-c3e3e74caeeb.png)

さらにもう1つ`メッセージをログ`を追加して、今度は`+`マークから`カスタマイズ可能としてマーク`を選択してみましょう
※表記はカスマイズですが恐らく誤記

:::note info
`カスタマイズ可能としてマーク`を選択するとテンプレート使用時にその部分がクリアされます。
:::


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/b24469ac-e848-b1a2-6ec7-f43599a26416.png)

### テンプレートをパブリッシュする

保存してパブリッシュしてみましょう。Studioのデザインタブから`パブリッシュ`を選択しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/83dc4465-01cd-7050-c7c8-5d04b2174bb2.png)

#### テンプレートを使用する時の情報を記載する

`テンプレートをパブリッシュ`画面が立ち上がります。`テンプレート情報`を記載しましょう。

- **名前：** テンプレート自体の名前
- **説明：** テンプレート自体の説明
- **既定のプロジェクト名：** テンプレートを使用したプロジェクトに使われる名前
- **既定のプロジェクトの説明：** テンプレートを使用したプロジェクトに使われる説明

`既定のプロジェクト`の方を埋めておくことで命名や説明の構造を統一することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/2d9a324c-b0e5-543b-2d53-da9c24feaf68.png)


#### パブリッシュ場所の決定

`パブリッシュのオプション`で`ローカル`を選択してください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/e6dc3bee-4ffe-62c9-d05b-669f3eacfbe7.png)

#### ローカル環境にパブリッシュする

`パブリッシュ`を選択してください。

`正常にパブリッシュされました`と表示されれば完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/8f343d08-9911-25b1-0bb2-ac8dcb3de2fd.png)


### テンプレートの削除方法

ローカルにパブリッシュされた後のテンプレートの実体は`.nupkg`ファイルとして保存されています。テンプレートを削除する時はこちらを削除すればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/51fd4dd7-1c2a-81b8-7a66-7f953e24ca7c.png)

:::note info
UiPath Studio再起動後に反映されます。

テンプレート削除後も、既にテンプレートを使用しているプロジェクトには影響はありません。
:::


## Orchestrator環境のテンプレート作成方法

`UiPath Orchestrator`を導入している組織の場合、Orchestratorにパブリッシュすることで開発者間でテンプレートを共有できます。
ロボット間の品質を安定させることができるでしょう。

### テンプレートを作成してテンプレート情報を記入する

 [作成](###テンプレートを作成する)と[パブリッシュ直前](####テンプレートを使用する時の情報を記載する) まではローカル環境と同様なので割愛します。

### Orchestratorにパブリッシュする


`パブリッシュのオプション`の`パブリッシュ先`を`Orchestrator 共有ライブラリ フィード`を選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/dfeac0d8-0f99-6f04-ee35-f655140cba0f.png)

#### エラーが出た場合

組織ごとの設定にもよりますが、次のようなエラーが出るかもしれません。

`エラー:OrchestratorへのProcessプロジェクトのパブリッシュに失敗しました。パッケージ共有フィードにはパブリッシュできません`


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/498db47f-049d-a159-c294-7bb8c5ecc40b.png)

その場合、Orchestratorで設定を変更する必要があります。

`テナント`→`設定`→`デプロイ`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/ffb704c1-3fe6-8fc0-b823-b6dddc5f4d4a.png)

`ライブラリ`の`フィード`を`テナントフィードのみ`に変更する→保存

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/16ad518d-0f0f-c06b-7d99-26e2fefb6179.png)

#### パブリッシュ成功

パブリッシュに成功した場合、メッセージが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/fc8e5105-c009-d8d7-bd93-f243651e1431.png)

#### パブリッシュ確認

パブリッシュされたかを**Orchestrator**で確認しましょう。

### テンプレートの削除方法

**Orchestrator**にパブリッシュしたテンプレートは**Orchestrator**上で削除可能です。

`テナント`→`パッケージ`→`ライブラリ`でテンプレートの右端を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/45c9107b-8b53-7742-bd76-6dabfad8105a.png)

`削除`を選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/c8672653-ee13-eb40-cf1e-209b86ca4591.png)


## 作成したテンプレートを使用する

作成したテンプレートを使用して新しいプロジェクトを作成してみましょう。

ローカルにパブリッシュした場合でも**Orchestrator**にパブリッシュした場合でも同様です。

### スタート画面で選択

Studioを念のため再起動し、スタート画面に戻ると`おためしテンプレート`が増えています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/3d88d124-8e6f-42a4-9195-5ae64be880b6.png)

もし、見当たらない場合は`その他のテンプレート`から`ローカル`または`Orchestrator`を選ぶと表示されます。
クリックすると新規プロジェクトがテンプレートを使用して立ち上がります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/04218b5c-5d47-3048-bbe0-0494d4c65309.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/b0afc481-567e-8443-a3e0-49545748d582.png)

#### 新規プロジェクトの情報を入力

新しい`テンプレート名`が立ち上がるので作成するプロジェクトの名前や説明、保存場所を入力してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/8079c82a-0f29-2701-ba15-f68ebb6e2dbf.png)

:::note warn
対応OSと言語はテンプレートから変更できません
:::
入力しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/58f53bd8-e9ca-6aea-869e-bc501e9a0f38.png)

### プロジェクトを実装する

新規プロジェクトが立ち上がりました。あとは実際の実装をしていきましょう。
`カスタマイズ可能としてマーク`を選択した部分がクリアされています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/097a49b9-c41d-519a-a2ca-368a098760fe.png)






## 参考資料
<!--

https://qiita.com

[リンク1](https://qiita.com)
-->

https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/project-templates

https://forum.uipath.com/t/automation-cloud-orchestrator-orchestrator/726878

## まとめ

UiPath Studioのテンプレートの作成方法と使用方法を紹介しました。
テンプレートをうまく使うことで工数削減と品質安定につながります。

テンプレート自体の管理方法などは組織によって最適解は異なるので組織内でルールを決めて活用していきましょう！