Sometime you may require to retrieve duplicate detection rules using CRM SDK, this post will help you to write code to get duplicate detection rule. Let’s take an example we want to retrieve all the duplicate detection rules based on the entity name, if you will navigate to Settings-> Data Management -> Duplicate Detection Rules, you will see duplicate detection rules for entities, for example below is the duplicate rules for contact entity
We can use following code to get duplicate detection rule records, we are using simplified connection to connect CRM deployment, you can refer this for details on simplified connection:
using(OrganizationService crmService = new OrganizationService("OrganizationService")) { QueryExpression query = new QueryExpression { EntityName = "duplicaterule", ColumnSet = new ColumnSet("name"), Criteria = { FilterOperator = LogicalOperator.And, Conditions = { new ConditionExpression { AttributeName = "baseentityname", Operator = ConditionOperator.Equal, Values = {"contact"} }, new ConditionExpression { AttributeName = "statecode", Operator = ConditionOperator.Equal, Values = {1} } } } };
In above code we are retrieving only published duplicate rules, so it will fetch two records for us
After that we can loop through entity collection to get individual duplicate rule if required using following code:
foreach (Entity duplicaterule in entityCollection.Entities){ //processing entitycollection records }
Also in case you need unpublished duplicate rules you can check statecode like below:
new ConditionExpression { AttributeName = "statecode", Operator = ConditionOperator.Equal, Values = {0} }
Pingback: Retrieve Duplicate Detection Rules using CRM SDK - Microsoft Dynamics CRM Community