Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public with sharing class acm_AutoConvertLeads {
- @InvocableMethod
- public static void assignAndConvertLeads(List<Id> leadIds) {
- List<Lead> allLeadsReceived = [SELECT Id, FirstName, LastName, Email FROM Lead WHERE Id IN :leadIds];
- LeadStatus convertedLeadStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted = true LIMIT 1];
- List<Database.LeadConvert> massLeadConvert = new List<Database.LeadConvert>();
- for (Lead currentlead :allLeadsReceived) {
- Database.LeadConvert leadConvert = new Database.LeadConvert();
- leadConvert.setLeadId(currentlead.Id);
- leadConvert.setConvertedStatus(convertedLeadStatus.MasterLabel);
- leadConvert.setDoNotCreateOpportunity(TRUE);
- // create opportunity = false
- massLeadConvert.add(leadConvert);
- }
- Database.DMLOptions dmlAllow = new Database.DMLOptions();
- dmlAllow.DuplicateRuleHeader.AllowSave = true;
- List<Id> insertedLeadIds = new List<Id>();
- if(!massLeadConvert.isEmpty()) {
- List<Database.LeadConvertResult> lcr = Database.convertLead(massLeadconvert, false);
- // set 'false' to allow converting if no duplicates found
- for(Database.LeadConvertResult each :lcr) {
- for (Database.Error error :each.getErrors()) {
- if(error instanceof Database.DuplicateError) {
- Database.DuplicateError duplicateError = (Database.DuplicateError) error;
- Datacloud.DuplicateResult duplicateResult = duplicateError.getDuplicateResult();
- Datacloud.MatchResult[] matchResults = duplicateResult.getMatchResults();
- Datacloud.MatchResult matchResult = matchResults[0];
- Datacloud.MatchRecord[] matchRecords = matchResult.getMatchRecords();
- for (Datacloud.MatchRecord matchRecord :matchRecords) {
- System.debug('MatchRecord: ' + matchRecord.getRecord());
- System.debug('ID OF MATCH: ' + matchRecord.getRecord().Id);
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement