次の方法で共有


.NET 用 SDK を使用した重複データの検出

Microsoft Dataverse .NET 用 SDK を使用すると、重複行を検出してデータの整合性を維持できます。 コードを使用した重複データの検出の詳細については、コードを使用した重複データの検出 を参照してください。

注意

適切な重複データ検出ルールが存在することを確認します。 Dataverse には、取引先企業、取引先担当者、および潜在顧客に対する既定の重複データ検出ルールが含まれますが、他の種類の行については含まれていません。 システムが他の行の種類の重複データを検出するようにするには、新しいルールを作成する必要があります。
- UI を使用して重複データの検出ルールを作成する方法については、データを整理するための重複データ検出ルールの設定 を参照してください。
- コードを使用して重複データ検出ルールを作成するには、重複ルール テーブル を参照する

行を作成または更新する前に、RetrieveDuplicatesRequest メッセージを使用して重複を検出します

RetrieveDuplicatesRequest クラスを使用してテーブルの行を作成または更新する前に、テーブルの行が重複しているかどうか、または重複するかどうかをプログラムで確認することができます。

var account = new Account();
account.Name = "Sample Account";

var request = new RetrieveDuplicatesRequest()
{
    BusinessEntity = account,
    MatchingEntityName = account.LogicalName,
    PagingInfo = new PagingInfo() { PageNumber = 1, Count = 50 }
};

var response = (RetrieveDuplicatesResponse)svc.Execute(request);

if (response.DuplicateCollection.Entities.Count >= 1)
{
    Console.WriteLine("{0} Duplicate rows found.", response.DuplicateCollection.Entities.Count);
}

SuppressDuplicateDetection パラメーターを使用して、行の作成または更新時にエラーをスローします

作成した新しい行が重複行であると判断されたときにプラットフォームにエラーをスローさせる場合、または重複データ検出ルールが評価されるように既存の行を更新する場合は、IOrganizationService.ExecuteCreateRequest または UpdateRequest クラスを使用する必要があります メソッドと、false に設定されている SuppressDuplicateDetection パラメーターを適用します。

次のコードは、以下が true である場合に、InvalidOperationException の例外を A record was not created or updated because a duplicate of the current record already exists. メッセージと共にスローします:

  • 重複データ検出が、行が作成または更新されるときに環境に対して有効です。
  • 取引先企業テーブルで重複データ検出が有効です
  • アカウント名の値が既存の行と完全に一致するかどうかを確認する重複データ検出ルールが公開されています
  • Sample Account という名前の既存の取引先企業がある
var account = new Account();
account.Name = "Sample Account";

var request = new CreateRequest();
request.Target = account;
request.Parameters.Add("SuppressDuplicateDetection", false);

try
{
    svc.Execute(request);
}
catch (FaultException<OrganizationServiceFault> ex)
{
    switch (ex.Detail.ErrorCode)
    {
        case -2147220685:
            throw new InvalidOperationException(ex.Detail.Message);
        default:
            throw ex;
    }
}

関連項目

Web API を使用した重複データの検出

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。