2012-04-24 2 views
1

단일 전자 메일 쿼리를 작성하여 특정 전자 메일과 모든 연락처 및 리드를 얻으려고합니다. 이제 연락처와 리드를 검색하는 두 가지 쿼리를 작성할 수 있습니다. 그러나 이것은 단일 쿼리를 사용하여 가능합니다 (여러 객체를 검색하는 경우).전자 메일로 연락처 및 리드를 가져 오는 SOQL 쿼리

단일 쿼리를 찾는 이유는 자바 스크립트에서 salesforce REST API를 사용하고 있으며 연락처 및 리드 검색에 대한 두 가지 별도의 요청을 원하지 않기 때문입니다.

답변

2

감사합니다. 이것은 확실히가는 길입니다. 하지만 방금 SOQL 대신 SOSL을 시도했고 workbench.developerforce.com은 제 쿼리를 시도하는 데 많은 도움을주었습니다. 간단한 SOSL 쿼리를 실행하여 Lead 및 Contact 개체를 모두 검색 할 수있었습니다. 쿼리는

FIND {[email protected]} IN EMAIL FIELDS RETURNING Contact, Lead 
+1

나는 SOSL을 생각하지 않았지만, 그것은 확실히 선택 사항 일 것이다. 다음은 http://www.salesforce.com/us/developer/docs/api_rest/index_Left.htm#StartTopic=Content/resources_search.htm –

+0

문서입니다. 이전 솔루션에서는 연락처와 리드가 동일한 전자 메일을 공유한다고 가정했습니다. 실제로 회사는 다른 이메일 (개인 및 전문)을 가질 수 있습니다. Lead Sobject는 까다로운 작업이며 리드와 연락처가 특정 조직에서 연결되는 방법이 더 많을 수 있습니다. –

3

SOQL은 SQL과 같이 UNION 문을 허용하지 않으므로 한 쿼리에서이 작업을 수행 할 방법이 없습니다 (currently).

요청을 줄이기 위해 Apex web service을 만들면 자바 스크립트 코드에서 호출 할 수 있습니다. Apex 부분은 두 개의 SOQL 문을 실행 한 다음 결과를 반환합니다. 이것은 여전히 ​​두 개의 조회가되지만 한 요청 내에서 완료됩니다. 이 방법을 사용하여 성능을 향상시킬 지 여부를 말할 수는 없지만 여러 가지 요인에 따라 다릅니다. 그러나 그것은 여러분이 실험 할 수있는 것입니다. 희망이 도움이됩니다.

1

입니다. SOSL에는 SOQL보다 다른 제한 및 문제점이 있습니다. 이 경우 최상의 옵션 인 것처럼 보이지만 둘 사이의 차이점을 알아야합니다. 여러 객체 유형에서 텍스트 필드를 검색해야 할 때마다 SOSL을 사용한다고 생각합니다. 그러나 항상 한계를 명심하십시오.

+0

머리를 주셔서 감사합니다. .. 그 한계를 명심해라. – Aravind