この記事では、Microsoft Dataverse テーブルのデータ保持ポリシーを設定する方法について説明します。
[前提条件]
長期的なデータ保持のためのテーブルを設定する前に、次の前提条件を満たす必要があります。
長期的な保持のためにテーブルを有効にする
保持ポリシーを設定する前に、親 (ルート) テーブルを有効にして長期保持に対応させます。
注
親 (ルート) テーブルで長期保持が有効になっている場合、関連するすべての子テーブルが自動的に有効になります。 親テーブルで保持が既に有効になっている場合、子テーブルの保持を無効にすることはできません。 たとえば、カスタム テーブルとノート テーブルがケース テーブルの子テーブルであるとします。 親ケース テーブルが有効になっている場合、これらの子テーブルを保持のために無効にすることはできません。 作成者はいつでも親テーブルの長期保存を無効にし、子テーブルの保存を個別に有効にすることができます。 ただし、ソリューションのインポート プロセスを通じて長期的なリテンション期間が有効になっている場合、この関連する子テーブルの動作には例外があります。 この場合、関連する子テーブルは自動的に有効になりません。
- Power Apps にサインインし、[テーブル] に移動し、目的のテーブルを開きます。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- コマンド バーで [プロパティ ] を選択し、[ 詳細設定] オプションを展開して、[ 長期保持を有効にする] を選択します。
- 保存 を選択します。
親ルートテーブルと子テーブルは、テーブルを保存してから約 15 ~ 30 分後にポリシー設定に使用できます。 子テーブルの数が多いほど、プロセスの完了にかかる時間は長くなります。
ポリシー条件に対する Dataverse ビューを決定する
データバース ビューは、長期保持ポリシーを使用して保持対象としてマークされているテーブル行 (レコード) を決定するために使用されます。 データ保持ポリシーを設定する前に、保持の条件として Dataverse ビューを設定する必要があります。
特定の長期保持ポリシーで使用する Dataverse ビューを作成したら、ビューの結果をテストする必要があります。
TOP N ステートメントを使用してビュー クエリを変更し、返される結果セットが想定どおりに行われるようにテストすることをお勧めします。 これは、特に行数が多い場合に常にお勧めします。
たとえば、2015 年から閉じられたすべてのケースを選択するために作成された Dataverse ビューを考えてみましょう。 ケースの数は非常に多くなる可能性があります。 そのため、TOP N などのをビューに追加し、テストして、取得したケースのサンプル セットを確認する必要があります。
データ保持ポリシーを実行すると、長期的なデータ保持のために親テーブルとすべての子テーブルの行が含まれます。 親ケースには、ノート、タスク、カスタム テーブルなど、子テーブルの行が関連付けられている場合があります。 データ保持ポリシーにより、ケース レコードとそれに関連するすべての子行が、Dataverseで長期的にマーキングおよび保持されます。 さらに、ケース テーブルの参照値は、たとえば、保持されるデータの一部として使用できる ID と名前の値で非正規化されます。 これにより、多くのシナリオで、1 つのクエリで関連する保持データを取得できます。
Important
保持する行のみを識別するための Dataverse ビューを作成することをお勧めします。 次に、ポリシーの条件として使用する前に、確認するビューを持つアプリを作成して実行します。 テーブル ビューを作成する方法については、「 パブリック ビューまたはシステム ビューの作成と編集」を参照してください。
アイテム保持ポリシーを設定する
Power Platform 管理者は保持ポリシーを設定します。
Important
データが長期 (非アクティブ) データとして保持されると、アクティブなデータ ストアに戻すことはできません。
アイテム保持ポリシーが実行されると、プロセスは Microsoft Power Platform で API 要求を行います。 これらの要求は、プランで使用可能な既存の API 要求にカウントされます。 詳細: 制限と割り当ての要求
このタスクを完了するには、Power Platform 管理者ロールが必要です。
- 長期的な保持のためにテーブルを有効にします。
- Power Apps にサインインし、左側のナビゲーション ウィンドウで [アイテム保持ポリシー] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- コマンド バーで、[ 新しいアイテム保持ポリシー] を選択します。
- 保持ポリシーの次のプロパティを指定してください。
- テーブル。 長期的なストレージに過去のコールド データを保持するポリシーを設定するために使用する親ルート テーブルを選択します。
- 名前。 リテンションポリシーの名前を入力します。
- 条件。 一覧からビューを選択します。 ビューは、適切な履歴データが選択されていることを確認するために、以前に作成およびテストされている必要があります。 ポリシー条件の Dataverse ビューを決定する
- スケジュール - 開始日。 ポリシーを初めて実行する日付を入力します。 ポリシーは、環境のリージョンの業務時間外に実行されます。
-
頻度。 使用可能な選択肢は、 1 回、 毎日、 毎週、 毎月、 毎年です。
- 保存 を選択します。
これで、ポリシーを表示および管理できます。 詳細情報: データ保持ポリシーの管理
Important
- 管理モードが有効になっている環境では、アイテム保持ポリシーは開始されません。
- 親テーブルにポリシーを設定すると、すべての親アクティビティと関連する子アクティビティ、電子メール、添付ファイルがセットとして保持されます。 これは、一括削除ポリシーに似ています。 たとえば、アクティビティ ポインター、アクティビティ パーティ、および添付ファイルのテーブルに明示的なアイテム保持ポリシーを設定することはできません。 一括削除がサポートされていないテーブルには、長期保持ポリシーを設定できません。
- 親テーブルと、親の子テーブルのすべての関連する行は、Dataverse 長期ストレージにマークされ、格納されます。
- 任意のテーブル (親と子) の既存の削除アクションに関連付けられているロジックは、ポリシーの実行中に常に実行されます。
- ポリシーの実行には、データ ボリュームに関係なく 72 ~ 96 時間かかります。 データ保持ポリシーは、プラットフォームによって優先順位が低くなります。 Dataverse は常にバックグラウンドで保持プロセスを実行し、アプリやフローなどの他のプラットフォーム サービスへの影響を回避します。
- 共通の子テーブルを持つ個別の親テーブルで 2 つのポリシー (Policy1 と Policy2) が実行される状況を考えてみましょう。 Policy1 は Policy2 より前に実行を開始します。 Policy1のステータスが保留中の調整を超えて進行していない場合、Policy2のステータスはPolicy1が保留中の調整から削除保留中に進むまで削除保留中のままです。 この動作は、2 つのポリシーの共通テーブルから共通レコードが削除されないようにするために発生します。
既知の問題
親テーブルに多数の子テーブルがあり、親テーブルまたは子テーブルのサイズが大きい場合は、タイムアウトが発生する可能性があります。 たとえば、カスケード リレーションシップ チェーン内のテーブルの数が多い場合 (25 個以上など)。 これを軽減するには、最初にいくつかの子テーブルを個別に有効にします。 次に戻り、親テーブルを有効にします。