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;
코드 표시 ..! –