일반 사용 사례에 대한 빌드 검색
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 단일 개체 내에서 검색하는 방법을 설명할 수 있습니다.
- 다중 개체 내에서 검색하는 방법을 설명할 수 있습니다.
- 사용자 정의 개체 내에서 검색하는 방법을 설명할 수 있습니다.
Cloud Kicks에서의 직무
여러분이 유망 기업 Cloud Kicks의 새로 영입된 능력있는 개발자라고 가정해 보겠습니다. Cloud Kicks는 매우 편안하고 스타일리시하고 친환경적인 맞춤형 운동화를 만들며, 이 운동화는 프로 달리기 선수와 주로 주말에 운동하는 사람 모두에게 인기가 있습니다.
여러분은 Cloud Kicks 직원을 위한 고객 대면 온라인 기술 자료와 내부 제품 웹사이트를 제작하는 일을 담당하고 있습니다. 모든 데이터는 Cloud Kicks Salesforce org에서 가져옵니다. 사용자 정의 검색 솔루션을 위한 직무로 보이시나요? 이 시나리오를 사용하여 사용자 정의 검색 솔루션에 대한 몇 가지 일반적인 사용 사례를 살펴보겠습니다. 특정 사용 사례를 사용하는 이유에 대해 이야기한 후에 다음과 같은 몇몇 예시를 다뤄보겠습니다.
단일 개체 내에서 검색
Cloud Kicks는 성장 중인 스타트업 기업으로, 세계 시장으로 진출하기 위해 활발히 마케팅하고 있습니다. 이들은 여러 캠페인을 시작하고, Salesforce를 통해 캠페인 결과를 추적했습니다. 마케팅 및 영업 부서에서 여러분이 작업하고 있는 내부 제품 웹사이트에서 캠페인만 검색할 수 있는 방법을 문의했습니다. 사용자들은 자신에게 적용되지 않는 레코드를 찾아보길 원하지 않으므로, 하나의 레코드 유형을 빠르게 검색할 수 있는 방법이 필요할 때 단일 개체 검색을 사용하는 것이 가장 좋습니다.
SOSL을 사용하여 단일 개체 내에서 검색하려면 이 요청에 해당 개체를 지정하기만 하면 됩니다. 매우 쉽습니다.
FIND {term} RETURNING ObjectTypeName
예제에서, term
은 사용자 입력 항목입니다. ObjectTypeName은 검색 결과를 제한하여 지정된 sObject만 포함합니다. 따라서 사용자가 2016년 3월 이메일 캠페인을 찾으려는 경우 요청은 다음과 같습니다.
FIND {march 2016 email} RETURNING Campaign
Salesforce에서는 RETURNING으로 처리할 수 있는 멋진 업무를 모두 다루며, 다음 유닛에서는 최상의 검색 결과를 얻기 위해 검색을 구체화하는 방법을 소개합니다.
다중 개체 내에서 검색
Cloud Kicks는 고객을 사랑합니다. 사용자가 웹사이트에서 질문하고 정보를 공유할 수 있는 원스톱 상점을 구축하고자 하며, 여기에는 비디오, 기사, 질문 및 PDF와 같은 여러 유형의 정보가 포함되어 있습니다. 그러나 사용자들은 어떤 컨텐츠 유형이 표시되는지에 대해 크게 신경 쓰지 않습니다. 사용자들은 필요한 정보를 빠르게 얻는 데에만 관심이 있습니다. 이는 바로 다중 개체 검색을 유용하게 만드는 이유입니다. 사용자에게 레코드 유형은 크게 중요하지 않으므로 이를 통해 사용자는 다중 개체를 동시에 검색할 수 있습니다. 또는 사용자가 실제로 결과에서 다중 개체 유형을 보고자 할 수도 있습니다.
다행히 다른 개체를 추가하는 것은 SOSL에서 매우 간단합니다. 쉼표로 구분된 목록을 추가하기만 하면 됩니다.
FIND {term} RETURNING ObjectTypeName1, ObjectTypeName2, ObjectTypeNameYouGetTheIdea
다시 시나리오를 돌아보면, Cloud Kicks 고객은 신발이 재활용 소재로 제작되었는지 궁금해합니다. 해당 용어와 일치하는 다중 개체가 결과에 반환되도록 온라인 기술 자료 검색을 설정합니다.
FIND {recycled materials} RETURNING Product2, ContentVersion, FeedItem
개체를 지정하지 않을 경우 RETURNING 요소는 결과에 표시되지 않습니다.
사용자 정의 개체 내에서 검색
Salesforce에는 고객이 사용할 수 있는 수많은 표준 개체가 포함되어 있습니다. 그러나 Cloud Kicks는 커스텀 제작 신발에 관한 것이므로 사용자 정의 개체도 필요합니다. 특히 관심을 끄는 제품은 최신 사용자 정의 개체인 상품(Merchandise)입니다. 이 개체에는 Cloud Kicks가 제공하는 스타일, ID, 색상, 소재, 이름 및 가격에 대한 모든 정보가 포함되어 있습니다. Cloud Kicks에서 많은 사람들은 지원, 판매 및 배송을 포함하는 이 정보에 액세스해야 합니다.
구축 중인 내부 제품 웹사이트의 경우 제품 사용자 정의 개체만 검색하는 검색 상자를 추가합니다. SOSL 검색에서 사용자 정의 개체를 지정하는 적절한 방법은 없습니다. 기타 표준 개체와 같은 sObject 이름을 포함하고 __c 접미사를 추가합니다.
FIND {pink hi\-top} RETURNING Merchandise__c
SOQL
SOSL에 대해 알아보았습니다. 그렇다면 SOQL이란 무엇인가요? 검색할 필드를 알고 있는 경우, 검색어가 필드와 정확히 일치하는 경우(일부 또는 순서가 잘못된 일치 없음), 숫자, 날짜 또는 확인란 필드 데이터 및 몇 가지 결과만 찾고 있는 경우 단일 개체 검색에 SOQL을 사용합니다. SOQL을 사용해야 하는 경우를 나열한 전체 목록을 보려면 이전 유닛을 참조하세요.
이 모듈에서 일반적인 이전 사용 사례를 살펴본 경우 SOQL 사용에 대한 몇 가지 위험 신호를 발견했을 수도 있습니다. 예:
- Single object search(단일 개체 검색) - SOQL은 데이터가 있는 필드를 알고 있는 경우 작동합니다. march 2016 email에 대한 필드를 지정하지 않았으므로 SOSL 검색은 SOQL보다 선호됩니다. 일반적으로 쿼리에서 검색할 대상 필드를 지정하지 않을 경우 SOSL이 작동합니다.
- Multiple object search(다중 개체 검색) - 서로 연관된 다중 개체에서만 데이터를 검색할 수 있으므로 SOQL의 다중 개체 검색은 제한됩니다. 시나리오에서 개체는 관련이 없었으므로 SOSL입니다.
- Custom object search(사용자 정의 개체 검색) - 단일 개체 검색과 마찬가지로 SOQL에서 사용자 정의 개체를 잘 검색할 수 있습니다. 그러나 검색어 pink hi-top에 대한 데이터가 있는 필드를 지정하지 않았습니다. 또한 SOQL은 인덱스가 아닌 데이터베이스를 검색합니다. 레코드가 실제로 pink sneaker hi-top이 포함되었다고 가정해 보겠습니다. SOQL은 올바른 결과를 반환할 수 없습니다.