Dataverse 重複したデータの登録を防ぐ「重複データの検出ルール」について|重複データの検出ジョブについても

Dataverseの重複データの検出について調査する機会があったので、メモ。

スポンサーリンク

Dataverseの機能「重複データの検出」

Dataverseにはデータを登録/編集する際に、「重複したデータが存在しないか」を検出する機能があって、「どんなデータを重複とみなすか?」をルールとして設定することができる。

重複データ検出の有効(無効)の単位

重複データ検出は以下のレベルで有効(無効)化を設定できる。

  • 環境
  • テーブル
  • 特定の操作(追加編集、インポート など)

重複データ検出を試す

実際に重複データの検出ルールの作成と、重複するデータを登録するときにどんなメッセージが表示されるかを確認する。

今回はこの「ねこ」テーブルに置いて、「名前」と「誕生日」が一致するレコードを重複したデータとみなす。
※本番ではメールアドレスなどの「データが一意に定まる」列を条件とするのが推奨

事前準備:重複データ検出の有効化

まずは重複データの検出を有効化する。対象のテーブルがある環境の[設定]を開き、
[重複データ検出の設定]をクリック。
[重複データ検出を有効にする]をオンにして、どの操作のときに検出するか(今回はすべて)をチェックし、[OK]を押す。
最後に「ねこ」テーブルの[プロパティ]から[重複データ検出ルールの適用]をオンにしたら、有効化完了。

重複データ検出ルールの作成

続いて重複のルールの作成。再度環境の設定に戻って[重複データ検出ルール]を押す。
[新規]を押して、
[名前]を適当につけ、[条件]を編集(今回は「名前と日付が一致」)し、[保存]→[公開]でルールの作成は完了。

動作確認

まずは簡易編集から同じレコードを追加してみると、画像のように「すでに同じレコードが存在しているよ」とエラーが出て保存ができない。
続いてフォームから同じレコードの作成を試みると、
画像のように重複レコードを知らせてくれて、[無視して保存]か[キャンセル]を選ぶことができる。
※[無視して保存]を選べば重複データの登録も可能。
ちなみに重複のルールに被らないよう誕生日を1日だけずらせば、問題なく保存ができる。

このように組織でDataverseを使う際に、別のユーザーが取引先などに対して同じレコードを追加してしまうことを防いでくれるので、かなり便利な機能かと。

重複検出のルールはソリューションに入れることも可能

重複検出ルールはソリューションに含めることができて、開発環境で作成したルールを本番環境にインポート、といったこともできるよう。
※インポートした直後は[未公開]状態らしいので、[公開]にする必要あり。

重複データ検出ジョブ

重複データの検出ルール構築前に登録したデータに対して重複をチェックしたいときや、定期的に重複データをチェックしたいときは、[重複データ検出ジョブ]を使用できる。

環境の設定画面に移動し、[重複データ検出ジョブ]を選択。
[新規]から[次へ]を押して、
対象とするレコード(今回はアクティブなレコード)を選択し、
[開始時間]と(定期的に実行する場合は)[実行間隔]を設定する。
最後に送信を押せばジョブの登録が完了。
実際にジョブが実行されると、
画像のように重複していると思われるレコードを抽出してくれる。
※公式には作成した検出ルールに従って重複をチェックするとは書いてあるが、複数ルールがある場合はどんな動作になるのかは不明(そもそも同じテーブルに対して複数重複ルールを設定することはないと思うけど)

参考:公式サイト

コメント

タイトルとURLをコピーしました