1

是否有在 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”错误。

为什么我不能这样做?
有没有标准的做法/方法来避免这种情况?

4

1 回答 1

1

您的代码看起来正确,将多个潜在客户转换为同一个帐户应该可以正常工作。

您的leadsT​​oConvert 列表很可能不止一次有相同的潜在客户。您可以使用地图快速验证这一点,以防止重复。

List<Database.LeadConvert> leadConverts = new List<Database.LeadConvert>();
Map<Id, Lead> leadMap = new Map<Id, Lead>(leadsToConvert);
for(Lead myLead : leadMap.values()){
于 2013-11-15T18:29:46.003 回答