Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. public with sharing class acm_AutoConvertLeads {
  2. @InvocableMethod
  3. public static void assignAndConvertLeads(List<Id> leadIds) {
  4.  
  5. List<Lead> allLeadsReceived = [SELECT Id, FirstName, LastName, Email FROM Lead WHERE Id IN :leadIds];
  6.  
  7. LeadStatus convertedLeadStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted = true LIMIT 1];
  8. List<Database.LeadConvert> massLeadConvert = new List<Database.LeadConvert>();
  9. for (Lead currentlead :allLeadsReceived) {
  10.  
  11. Database.LeadConvert leadConvert = new Database.LeadConvert();
  12. leadConvert.setLeadId(currentlead.Id);
  13. leadConvert.setConvertedStatus(convertedLeadStatus.MasterLabel);
  14. leadConvert.setDoNotCreateOpportunity(TRUE);
  15. // create opportunity = false
  16. massLeadConvert.add(leadConvert);
  17. }
  18.  
  19.  
  20. Database.DMLOptions dmlAllow = new Database.DMLOptions();
  21. dmlAllow.DuplicateRuleHeader.AllowSave = true;
  22. List<Id> insertedLeadIds = new List<Id>();
  23. if(!massLeadConvert.isEmpty()) {
  24. List<Database.LeadConvertResult> lcr = Database.convertLead(massLeadconvert, false);
  25. // set 'false' to allow converting if no duplicates found
  26. for(Database.LeadConvertResult each :lcr) {
  27. for (Database.Error error :each.getErrors()) {
  28. if(error instanceof Database.DuplicateError) {
  29. Database.DuplicateError duplicateError = (Database.DuplicateError) error;
  30. Datacloud.DuplicateResult duplicateResult = duplicateError.getDuplicateResult();
  31. Datacloud.MatchResult[] matchResults = duplicateResult.getMatchResults();
  32. Datacloud.MatchResult matchResult = matchResults[0];
  33. Datacloud.MatchRecord[] matchRecords = matchResult.getMatchRecords();
  34.  
  35. for (Datacloud.MatchRecord matchRecord :matchRecords) {
  36. System.debug('MatchRecord: ' + matchRecord.getRecord());
  37. System.debug('ID OF MATCH: ' + matchRecord.getRecord().Id);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement