Power Virtual Agents for Teams のチャットボットをテナント間でコピーする

#はじめに（2021/12/8時点）
[前回の記事](https://qiita.com/MiyakeMito/items/1b7ea16a16ddc9363cc4)に記載した通り、Teams版の Power Virtual Agents は無償にも関わらず、作成したチャットボットはテナント全体への公開が可能です。

また、エクスポート/インポートすることにより、**チャットボットはテナントをまたいだチーム間でのコピーが可能**となっています。


そのエクスポートおよびインポートの手順は、
[Microsoft Docsの「Teams で作成されたチャットボットのエクスポートとインポート」](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/authoring-export-import-bots-teams)
に記載がありますが、手順通りに実施しても、インポートしたチャットボットはエラーメッセージが表示され正常に開きません。
原因はエクスポート時にチャットボットに関連するコンポーネントが置き去りになっているためと思われます。

```
ボットの作成中に問題が発生しました

ボットの作成中に予期しないエラーが発生しました。
Exception of type 'Microsoft.CCI.ManagedStore.Exceptions.BotWithoutBotComponentsException' was thrown.
Trace ID: 0HMDL0L3GOFII:00000002
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/301d12b1-c850-4437-1b74-95523a955bf9.png)

今回は上記のエラーを回避し、エクスポートとインポートを正常に実施する方法を記載いたします。

#チャットボットのエクスポート手順

Teams上で、Power Appsアプリを開き、ビルドタブを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/c17d68da-4e4d-e6c7-ea90-7cfbea3f52e7.png)

チャットボットを作成したチームを選択し、[すべて表示]を押下します。
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4b45da8e-2fd4-c636-cda6-f29a177fc237.png)


 [チャットボット]をクリックし、リボンメニューの[Power Appsで開く]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4c6983cb-8293-602b-2018-2ced9f827b9b.png)


開いたPower Apps画面で、[←ソリューションに戻る] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e1b014fc-9a4a-a5c9-e255-25e2344b55aa.png)

[+ 新しいソリューション]をクリックし、 任意の表示名、名前、公開元、バージョンを入力し、[作成]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/f012f4b7-337a-c747-e549-08b271df0849.png)

作成したソリューションを開き、[既存を追加]の[チャットボット]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/29fcd050-e633-8d03-3d4b-c73bf8ce5688.png)

エクスポートするチャットボットを選択し、[追加]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/0b839ba0-d449-d569-af1c-79c7599bfe42.png)

正しくチャットボットがソリューションに追加されると、下記のようにすべての関連コンポーネントが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/540ecec8-a681-af7b-49e2-e36f23c95b5f.png)



左ペインより[概要]を選択し、[エクスポート]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/bb8f958e-4f99-abd1-55d5-dece559a9410.png)

右に表示されたペインで、[次へ]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/aa3e4de0-22ae-ec49-d53c-944403991d37.png)

インポート先の環境でもチャットボットの編集を行う場合は、"アンマネージド"でエクスポートしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/1e97f625-a292-be5b-3272-ccd12abc8b0d.png)

#チャットボットのインポート手順

※以前のバージョンの復旧等、同一ソリューションへインポートする際は、ソリューション一覧より該当ソリューションを削除してください。

インポート先テナントのTeams上で、Power Apps アプリを開き、[ビルド]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/ca252b7e-af75-c488-55c7-c2113816558e.png)

インストール先のチームを選択し、[インストールされたアプリ]を開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/74bdcf98-818c-b6a4-8185-021fbaeeb9e4.png)
※以前に同じチャットボットをインポートしている場合、ここにチャットボットが残っていないか確認してください。（存在する場合は削除してください）

また、[このチームがビルド済み]にも残っていないか確認してください。（存在する場合は削除してください）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/1a668a57-738b-aa12-5532-886ceb6790d3.png)

[すべて表示]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a015712e-b82f-d3ab-fed8-8382c0533736.png)

[インポート]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/f44c9b36-9a86-dba0-519f-8ce4725b81c1.png)

画面右に表示したペインにて、[参照]をクリックし、上記でエクスポートした.zipファイルを選択後、[次へ]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e16dd485-533e-3983-8bdd-fb55888086aa.png)

[インポート]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/59a33de4-b3a8-a7ff-a469-839b35c33352.png)

#まとめ

チームを跨いだチャットボットのコピー方法を記載しましたが、他にもこの手法が生かせる局面があります。

現段階（2021/12時点）において、チャットボットの履歴管理は不可能なようです。
Power Automateのように「別名で保存」することもできないため、スナップショットしたいバージョンにて「エクスポート」するという手段は有効です。
その際、今回の手法を利用いただければ幸いです。