💬

Dataverse for Teams のテーブルの懸念点(削除と復元)

2025/02/22に公開

はじめに

Microsoft365 が職場に導入されたので、試行錯誤しています。
Teams の大規模チームにおいて、Power Apps でアプリを作成し、データソースに Dataverse for Teams のテーブルを利用したところ、運用上の懸念点が見つかったので、記録します。

Dataverse for Teams とは

Microsoft 365 の一部のライセンス(M365 Business Basic や Microsoft 365 E5 等)に含まれる使用権により、Power Apps のアプリを作成できます。
その際、Teams から Power Apps を起動し、アプリを作成することによって、Dataverse for Teams の環境が作成されます。
作成したアプリのデータソースには、Excel のテーブル、SharePoint のリスト、Dataverse for Teams 環境 のテーブルを使用することができます。
Teams から Power Apps を使用した画面
https://learn.microsoft.com/ja-jp/power-platform/admin/pricing-billing-skus#power-apps-and-power-automate-for-microsoft-365
https://learn.microsoft.com/ja-jp/power-apps/teams/overview-data-platform?source=recommendations

Dataverse との違い

Dataverse for Teams は、通常の Dataverse よりも、大きく機能が制限されています。

Dataverse for Teams では最大 10,000 チームのチームあたり 1 つの環境に重点を置いているのに対し、Dataverse ではコピーやリセットなど、複数の環境に関連する機能に加えて、無制限の環境をサポートしています。

https://learn.microsoft.com/ja-jp/power-apps/teams/data-platform-compare

運用上の懸念点

チームのメンバーであれば誰でも、テーブルを削除することができます。
通常の Dataverse では、ごみ箱機能によって、テーブルを復元できるようです。
しかし、Dataverse for Teams には、テーブルの復元機能が無いようです。
数百名~数千名のチームでは、テーブルのデータ量も、多くなることが想定されます。
そのため、偶発的なテーブルの削除に、備えておくことが好ましいです。

テーブルの削除
チームのメンバーであれば誰でも、 管理ソリューション に含まれないテーブルを削除できます。

https://learn.microsoft.com/ja-jp/power-apps/teams/edit-delete-table

ごみ箱機能は Dataverse for Teams、試用環境、または既定の環境 では使用できません。

https://learn.microsoft.com/ja-jp/power-platform/admin/restore-deleted-table-records

マネージドとアンマネージド

テーブルの削除を防ぐには、管理されたソリューション(マネージド)にする必要があります。
後出の仕様によれば、開発環境で作成したアンマネージドのソリューションをエクスポートし、本番環境(別の環境)に、マネージドのソリューションとして、インポートする必要があります。
しかし、Dataverse for Teams の環境は、チームごとに1つまで、と制限とされているため、この仕様に基づくと、マネージドにすることはできない、と考えられました。

元のアンマネージド ソリューションを含む同じ環境に管理ソリューションをインポートすることはできません。 マネージド ソリューションをテストするには、別の環境をインポートする必要があります。

https://learn.microsoft.com/ja-jp/power-platform/alm/solution-concepts-alm

暫定的な解決策

暫定的な解決策として、アプリやテーブルについて、「ソリューションとしてエクスポート」を行い、バックアップしました。これにより、万が一テーブルが消滅しても、エクスポートしたパッケージのインポートによって、テーブルのスキーマ等を復元することができます。
ソリューションとしてエクスポート

また、テーブルのデータについては、前出のインポートでは復元されないため、Power Automate のスケジュール実行によって、CSVに定期バックアップすることとしました。

将来的に、アプリやテーブルの管理を第三者に引継ぐことなどを考えると、より簡単な解決策があればよかったですが、深入りするほどの時間もなかったため、これで完結としました。

Discussion