是否有一种标准方法可以在Salesforce中使用相同的AccountId转换潜在客户。当尝试使用以下代码执行此操作时,我收到错误“列表中的重复ID”
List<Database.LeadConvert> leadConverts = new List<Database.LeadConvert>();
for(Lead myLead : leadsToConvert){
Database.LeadConvert lc = new database.LeadConvert();
if (accountMap.get(myLead.Company) <> null) {
lc.setLeadId(myLead.Id);
lc.setDoNotCreateOpportunity(true);
lc.setAccountId(accountMap.get(myLead.Company).id);
lc.setOverwriteLeadSource(true);
//if we match to a contact, merge
if (contactMap.get(myLead.Email) != null && myLead.Email != null) {
lc.setContactId(contactMap.get(myLead.Email).id);
}
lc.setConvertedStatus(convertStatus.MasterLabel);
leadConverts.add(lc);
}
}
if(!leadConverts.isEmpty()){
Database.convertLead(leadConverts, false);
}
当我传入具有相同AccountID的潜在客户列表时,此代码才会失败。我收到“列表中的重复ID”错误。
为什么我不能这样做?
是否有一种标准的做法/方法来避免这种情况?
答案 0 :(得分:1)
您的代码看起来是正确的,将多个潜在客户转换为同一帐户应该可以正常工作。
您的leadsToConvert列表很可能不止一次具有相同的潜在客户。您可以使用地图快速验证这一点,以防止重复。
List<Database.LeadConvert> leadConverts = new List<Database.LeadConvert>();
Map<Id, Lead> leadMap = new Map<Id, Lead>(leadsToConvert);
for(Lead myLead : leadMap.values()){