2014-06-18 3 views
0

apex 배치에서 외부 API 호출을 사용하여 salesforce에 새로운 연락처와 리드를 삽입하려고합니다. 저는 하루에 한 번씩 달리고 있으며 salesfoce에 500 개의 연락처 또는 리드를 삽입하고 있습니다. 하지만 내 배치 파일이 동일한 전자 메일 주소로 중복 연락처를 삽입하고 있습니다. 나는 같은 이메일 아이디가 이미 다른 레코드와 함께 존재할 때 연락처를 건너 뛰거나 레코드를 삽입하려고합니다.salesforce에서 중복 된 연락처 (전자 메일 확인 사용)를 삽입하지 않으려면 어떻게해야합니까?

각 레코드에 대한 쿼리를 사용하여 전자 메일 주소를 확인하면 SOQL 쿼리 제한이 문제가됩니다.

Salesforce의 연락처 또는 리드에 중복 삽입되는 것을 방지 할 수있는 방법.

미리 감사드립니다 라젠 드라 J.

에이펙스 코드 :

request.setMethod ('GET'); request.setTimeout (120000); request.setEndpoint ('http://api.nurturehq.com/contacts/many?nurture_id='+ last_insert_id + '& 제한 = 10 & auth_token ='+ obj_authentication.nurture_authentication_key__c); request.setHeader ('X-Api-Version', '2.0'); request.setHeader ('X-Access-Id', 'APP_ID3MVG9A2kN3Bn17hvx6UytrOeZp67_J835ecdoZ5eJmyC_BQS227UFPVb5KgNJW7YpVd9oTA6sCJ19msqZQ9sY'); request.setHeader ('X-Access-Secret', 'SECRET_KEY4317178691269588217'); JSONParser 파서 = JSON.createParser (response.getBody()); // system.debug ('jsondataaaa'+ parser); NurtureSingleton__c nurSingle = [SELECT nurture_last_insert_contact_id__c NurtureSingleton__c 한도 1]; 목록 listContacts = 새 목록(); 동안 (parser.nextToken()! = NULL) {

  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; 
+0

코드 표시 ..! –

답변

0

당신은 "내 배치 파일이 동일한 이메일 주소와 중복 된 연락처를 삽입 되나." 밝혔다

질문은 중복되었거나 동일한 이메일 주소입니까?

전체 레코드 또는 성, 이메일 성 및 전화 번호를 비교해야합니다 엔터프라이즈 비즈니스 담당자가 이메일을 보내면 스미스 부인 (Yong Yong)과 다른 사람이 지원을 요청할 수 있습니다 @ ... 또는 정보 @ ..... 및 고객 관리 @ .. 이미 목록에 한 명 있지만 다른 리드가 오면 전자 메일에 대한 간단한 검증이 작동하지 않습니다.

화상 진찰 [email protected]이있는 병원을 이미 건강/위생 용품을 판매하고 있으며 의사에게 직접 판매하는 경우 이미 2 명의 의사와 3 번째 (새로운 리드 조인)에게 판매하고 있지만 [email protected]에 접속하면 전자 메일 주소 만 비교하면 새로운 단서가 생성되지 않습니다.