如何避免使用apex批在salesforce中插入重复联系人(使用电子邮件检查)?

如何避免使用apex批在salesforce中插入重复联系人(使用电子邮件检查)?,salesforce,batch-processing,duplicate-removal,apex,Salesforce,Batch Processing,Duplicate Removal,Apex,我正在尝试使用apex批处理中的外部api调用在salesforce中插入新联系人和潜在客户。我每天运行一次,在salesfoce中插入500个联系人或潜在客户。 但我的批处理文件正在插入具有相同电子邮件地址的重复联系人。我想跳过要插入的联系人或潜在客户记录,但另一记录中已存在相同的电子邮件id 如果我使用查询检查每个记录的电子邮件地址,那么SOQL查询限制将是一个问题 如何避免重复插入联系人或引入salesforce 提前谢谢 拉詹德拉J Apex代码: request.setMethod('

我正在尝试使用apex批处理中的外部api调用在salesforce中插入新联系人和潜在客户。我每天运行一次,在salesfoce中插入500个联系人或潜在客户。 但我的批处理文件正在插入具有相同电子邮件地址的重复联系人。我想跳过要插入的联系人或潜在客户记录,但另一记录中已存在相同的电子邮件id

如果我使用查询检查每个记录的电子邮件地址,那么SOQL查询限制将是一个问题

如何避免重复插入联系人或引入salesforce

提前谢谢 拉詹德拉J

Apex代码:

request.setMethod('GET'); 请求设置超时(120000); request.setEndpoint(“”+last\u insert\u id+’&limit=10&auth\u token='+obj\u authentication.furture\u authentication\u key\u c); setHeader('X-Api-Version','2.0'); request.setHeader('X-Access-Id','APP_id3mvg9a2kn3bn17hv6uytroezp67_J835ecdoZ5eJmyC_BQS227UFPVb5KgNJW7YpVd9oTA6sCJ19msqZQ9sY'); request.setHeader('X-Access-Secret','Secret_KEY4317178691269588217'); JSONParser=JSON.createParser(response.getBody()); //调试('jsondataaaa'+解析器); CultureSingleton_uuC nurSingle=[选择CultureSingleton_u最后一次插入联系人id_uuC FROM CultureSingleton_uC limit 1]; 列表联系人=新列表(); 而(parser.nextToken()!=null){

你说过 “但我的批处理文件正在插入具有相同电子邮件地址的重复联系人。”

这里的问题是,它是重复的还是仅仅是相同的电子邮件地址

您需要比较整个记录,或者至少比较名字、姓氏、电子邮件和电话 企业业务部门将有联系点电子邮件,这意味着史密斯先生、杨女士和其他人可以也将有类似的电子邮件support@...或Info@.....和顾客-care@.. 因此,如果列表中已经有一个人,但又有另一个潜在客户出现,那么简单的电子邮件验证就不起作用

想象一家医院AandE@xyzhospital.com,现在您正在销售健康/卫生产品并直接向医生销售,您已经向那里的2名医生和第3名医生(新的潜在客户加入)销售产品,但您只能在AandE@xyzhospital.com,将不会创建新lead,因为您仅比较电子邮件地址

            if (parser.getCurrentToken() == JSONToken.START_ARRAY) {
                while (parser.nextToken() != null) {

              if (parser.getCurrentToken() == JSONToken.START_OBJECT){

                  Contacts cnts = (Contacts)parser.readValueAs(Contacts.class);

                 first_name=cnts.first_name;
                 last_name=cnts.last_name;

                 if(String.isEmpty(first_name)) {
                     first_name='-';
                 }

                 if(String.isEmpty(last_name)) {
                     last_name='-';
                 }

                         listContacts.add(new Contact(FirstName = first_name , LastName = last_name,Email=cnts.email,Title=cnts.title,Birthdate=cnts.birthdate,Phone=cnts.phone,
                             MobilePhone=cnts.mobile,Fax=cnts.fax,Description=cnts.description,LeadSource=cnts.lead_source,MailingCity=cnts.city,MailingState=cnts.state,
                             MailingPostalCode = cnts.zip, MailingCountry = cnts.country,Department=cnts.department,Salutation=cnts.Salutation,
                             MailingStreet=cnts.address,Nurture_contact_id__c=cnts.id,AccountId=cnts.salesforce_account_id));

                             nurSingle.nurture_last_insert_contact_id__c = cnts.id;
                          //insert listContacts;

              }
             }
           }   

       }
       insert listContacts;