【UiPath】テンプレートをつかってみよう！（その３）

## 皆もすなるQiitaといふものを、儂もしてみむとてするなり。

と言う訳で、こん＊＊は！はなっち！です。

【初めに】
[【UiPath】テンプレートをつかってみよう！（その２）](https://qiita.com/HANACCHI/items/473b9580bb297e723050)のまとめとして、
`UiPath社として公開しているものもインストールしても、じっくり解読して、使いこなすには時間が掛かりそう（**続編に続く**）`
としました。

その続編です。

じっくり解読しなければならない、理解しなければならない、どうも自分のスキルとテンプレートとではギャップがある。だったら、自分が納得のいくテンプレートを作ってしまいましょう！

- - - 
## どうやって作るのか？
[テンプレートを作成する](https://docs.uipath.com/studio/lang-ja/v2023.4/docs/project-templates#creating-a-template)と言うサイトで案内されていますが、やはりUiPath Studioから作っていきます。ただ、通常のロボットを作成する時に選択する「プロセス」でも、共通部品としてのライブラリを作成する時に選択する「ライブラリ」でもなく、「テンプレート」を選択して作成します。

![T_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/85bf31b5-f37d-7722-e654-c6f4327d55dd.png)

ここをクリックしていくと、テンプレート名などを指定するダイアログが表示されます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/d7987ef4-c220-2e53-d60a-12955c8a9421.png">
しばらくすると、こんな画面が出てきますけど、ここではスルーします。
![T_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/b3979d97-1c08-f614-1b64-a64eac479721.png)
テンプレート作成のための初期画面が表示されました。
![T_004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/e404f04b-9bce-8dba-b77d-5e00579b5651.png)

「テンプレート」を実際に作るのではなく。「テンプレート」作成の流れをまとめていますので、簡単なアクティビティを設定してみます。
![T_005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/6a734d4d-26f0-ba48-9bb6-3114c04e48c5.png)
ここに、アクティビティをドラッグ＆ドロップして、
![T_006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/2078006d-444c-fa95-063c-4a2dddbf6e0b.png)
とします。
これで、「テンプレート」としての資産は出来るのですが、「テンプレート」を使っていくために、Publishしていきます。

## Publish!!
自分がUiPathで開発を始めた2018年秋に、これをテンプレートとしていますと渡されたファイルは、テンプレートとして作成されたプロセスをzip圧縮されたファイルでした。
今にして思えば実に稚拙なやり方でしたね。
実際には、「テンプレート」として作成された資産をPublishして、開発者が使用できるようにします。
①「パッケージのプロパティ」![T_007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/4966c1c7-b00d-a63d-6248-70c1bcaf2a77.png)
この画面で、プロジェクトタグには、検索するためのキーワードを設定してもいいですね。先の例で、`UiPath`と`Messagebox`と設定してみました。
Publishした後、開発者に配布、所定の位置に格納してもらったり、Orchestratorから参照する際、検索キーワードで検索してみると（例では、`Message`と入力）、こんな感じに表示されます。
![T_025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/755f5eb2-00fd-0a93-7399-577133f491d6.png)
②テンプレートの情報![T_008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/a3a358b3-37fd-fbee-6328-88fd9688ee0b.png)
この画面で、テンプレートを使用する前に「既定のプロジェクト名」（プロジェクト名として事前展開される名前）と「既定のプロジェクトの説明」（同説明書き）を設定します。開発者がこのテンプレートを使用する場合、こんな感じに表示されます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/352d51d9-ab91-f91f-073b-c3e43cf200d7.png">
設定した「規定のプロジェクト名」と、使用時に事前展開された名前が違うのは、「規定のプロジェクト名」で指定してしまった禁則文字([！]ですね）がOmitされているからです。ここは、UiPath社さんにお願い。事前にチェックしていただきたい点です。

③パブリッシュのオプション
![T_009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/4a806f9f-ce05-aaf4-ca76-9931e1bd4518.png)
この画面で、Publishして作成される.nupkgファイルの格納先を指定します。Orchestratorの区画か、ローカルか...開発者に公開する前に、まずはローカルフォルダにPublishして、動作検証しましょう。
![T_010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/d5bf8e7f-20cc-3514-9186-59fffaaa2830.png)
ローカルフォルダ位置は、この画面では変えられません。これは、UiPath Studioが、テンプレートフォルダの位置を容易に参照できるようにする為で、標準は、マイドキュメントフォルダ中のUiPathサブフォルダ配下の.templatesサブフォルダです。
このフォルダ位置の指定は、「設定」⇒「場所」⇒「プロジェクト テンプレートのパブリッシュ先 URL」で定義され、ここで変更を変える事が出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/a1c2509a-d16d-3718-0d52-872a59d9fb71.png)
④証明書の署名
![T_011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/abb61680-ab1c-8924-eb34-c1fc04fb59f1.png)
この画面で、何かを設定できるようですが、やった事がないので、そのままスルー（orz）
この画面の「パブリッシュ」ボタンをクリックし、Publishします。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/daf46456-3cd5-7c10-995e-4e97e34b9041.png">

## 使ってみる
Publishした.nupkgファイルは、テンプレート開発者が自分で使用するには何もせずに使用できますが、実際に使ってもらうには、開発者に配布し、開発者の環境のテンプレートフォルダに格納するひと手間が必要です。もしくはテンプレートをPublishする時に「Orchestrator 共通ライブラリ フィード」を指定してあげればいいですね。

今回は、こんな状態で試してみましょう。
【Publish先 ローカル】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/be993198-9ae6-71d4-ab57-e9627a9f3225.png)
【.nuget\packages】 ← アクティビティパックなどがインストールされているフォルダ。先ほどPublishしたテンプレートファイルは展開されていない
![T_013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/f6a51061-ce66-84bf-6313-ebeb4e57fcdb.png)

①「テンプレートから新規作成」
新しいロボットを作成する「スタート」画面の右下の「テンプレートから新規作成」から、先ほどのテンプレートを探し、クリックします。
![T_014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/e94acbbc-9cd1-33b4-484f-ea95554a06ae.png)
②「新しい 空のテンプレート」
新しいロボットの名前を改めて設定し、「作成」ボタンをクリックします。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/fd26fab6-cfb5-f795-3571-af33056535f4.png">

※この時点で、テンプレートとして作成された資産が、【.nuget\packages】にインストールされる
![T_016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/42b18077-63c7-dffb-3191-414c887f9920.png)
 
③テンプレートへ、業務ロジックを作成していきます。

## テンプレートにバグがあった!!
通常のバグ改修のように、UiPath Studioから修正し、Publishします。

## バグ改修後のテンプレート
「テンプレートから新規作成」から、改修されたテンプレートを選択します。この時点で、バグ改修前後の版数が存在しているため、どの版数を使用するかを選択できます。
![T_023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/bc9485ad-bc5f-a1a1-80ab-8619cc6c9a21.png)
尤も、バグ改修前の版数は使用してはいけないので、ローカルフォルダから、またはOrchestrator 共通ライブラリ フィードから削除しておきましょう。


## 【まとめ】
テンプレート機能は...以下のようにまとめます。
・会社、部署でのロボット開発スキルなどに応じたテンプレートが作れる。
・開発者に使用してもらうには、２通りの方法があり、
１）ローカルフォルダにPublishした.nupkgを配布し、開発環境のローカルフォルダに格納する方法
２）OrchestratorにPublishする方法
とがある。

- - - 

##おわりに
いかがでした？

今回も読んでいただきありがとうございました！
是非UiPathでのロボ開発の一助になればと思っています。

ありがとうございました！