Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sachi-d/8c1711bf4aad3c9ffaf14513059ceadf to your computer and use it in GitHub Desktop.
Save sachi-d/8c1711bf4aad3c9ffaf14513059ceadf to your computer and use it in GitHub Desktop.
If you want to check for duplicates before trying to insert, that too can be done using the FindDuplicates class in Datacloud namespace.
Class__c classToCreate = new Class__c(Name='Science', Grade__c=8);
List<Class__c> duplicates = findDuplicateRecords(classToCreate);
if(duplicates.size() == 0){
//no duplicates
insert classToCreate;
} else{
//desired update
}
public static List<SObject> findDuplicateRecords(Class__c classToCreate){
List<Class__c> classList = new List<Class__c>();
classList.add(classToCreate);
List<Datacloud.FindDuplicatesResult > findDuplicatesResult = Datacloud.FindDuplicates.findDuplicates(classList);
Datacloud.DuplicateResult duplicateResult = findDuplicatesResult.get(0).getDuplicateResults().get(0);
Datacloud.MatchResult matchResult = duplicateResult.getMatchResults()[0];
List<Datacloud.MatchRecord> matchRecords = matchResult.getMatchRecords();
List<SObject> duplicates = new List<SObject>();
for(Datacloud.MatchRecord matchRecord : matchRecords){
SObject duplicate = matchRecord.getRecord();
System.debug('Match Record: ' + duplicate);
duplicates.add(duplicate);
}
return duplicates;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment