Criar pesquisas para casos de uso comuns
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever como pesquisar em um único objeto.
- Explicar como pesquisar em vários objetos.
- Descrever como pesquisar em um objeto personalizado.
Trabalhando na Cloud Kicks
Digamos que você é o novo desenvolvedor superstar da empolgante nova empresa Cloud Kicks. Ela faz tênis personalizados ultraconfortáveis, elegantes e ecológicos que são um sucesso entre corredores profissionais e atletas de fim de semana.
Você recebe a tarefa de criar uma base de conhecimentos online voltada para os clientes e um site interno de produtos para os funcionários da Cloud Kicks. Todos os dados vêm da organização do Salesforce da Cloud Kicks. Esse parece ser um trabalho para uma solução de pesquisa personalizada, certo? Usando esse cenário, vamos dar uma olhada em alguns casos de uso comuns para soluções de pesquisa personalizadas. Vamos falar sobre por que você utilizaria um caso de uso específico e, em seguida, dar alguns exemplos.
Pesquisar em um único objeto
A Cloud Kicks é uma startup em crescimento e a equipe de marketing está trabalhando duro para divulgar a empresa. Ela iniciou diversas campanhas e as monitorou por meio do Salesforce. As equipes de marketing e vendas solicitaram uma maneira de pesquisar apenas campanhas no site interno de produtos no qual você está trabalhando. As pesquisas em um único objeto são ótimas quando os usuários precisam de uma maneira rápida de pesquisar um único tipo de registro, porque não querem ficar presos catando informações no meio de um monte de registros que não se aplicam a eles.
Para pesquisar em um único objeto usando SOSL, basta especificar o objeto na solicitação. É fácil assim.
FIND {term} RETURNING ObjectTypeName
No exemplo, term
é o que o usuário insere. ObjectTypeName limita os resultados da pesquisa para incluir apenas o sObject especificado. Então, se o usuário quer encontrar a campanha de email de março de 2016, a solicitação fica assim:
FIND {march 2016 email} RETURNING Campaign
Na próxima unidade, vamos falar sobre todas as coisas legais que você pode fazer com RETURNING e sobre como refinar sua pesquisa para obter os melhores resultados.
Pesquisar em vários objetos
A Cloud Kicks ama seus clientes. Ela quer criar uma área centralizada onde os usuários possam fazer perguntas e compartilhar informações em seu site. Há diversos tipos de informações incluídos: vídeos, artigos, perguntas e PDFs. Mas os usuários não se interessam pelo tipo de conteúdo que é apresentado. Eles só se importam em obter as informações que precisam – e rápido! Essa é a vantagem da pesquisa em vários objetos: Você pode pesquisar em vários objetos ao mesmo tempo, pois o tipo de registro não importa para o usuário. Ou talvez o usuário de fato queira ver diversos tipos de objetos nos resultados.
Felizmente, adicionar outro objeto em SOSL é muito simples. Basta adicionar uma lista separada por vírgulas.
FIND {term} RETURNING ObjectTypeName1, ObjectTypeName2, ObjectTypeNameYouGetTheIdea
Voltando ao nosso cenário, o cliente da Cloud Kicks está se perguntando se alguns dos sapatos são feitos de material reciclado. Você configura a pesquisa da base de conhecimentos online de modo que vários objetos correspondentes aos termos sejam retornados nos resultados.
FIND {recycled materials} RETURNING Product2, ContentVersion, FeedItem
Lembre-se, se você não especificar um objeto no elemento RETURNING, ele não aparece nos resultados.
Pesquisar em objetos personalizados
O Salesforce inclui diversos objetos padrão disponíveis para os clientes. Mas a Cloud Kicks é uma empresa de sapatos personalizados, então faz sentido que ela também precise de objetos personalizados. O mais novo objeto personalizado, Mercadorias, é de interesse específico para você. Esse objeto contém informações sobre o estilo, a identificação, a cor, os materiais, o nome e o preço de tudo o que a Cloud Kicks tem para oferecer. Muitas pessoas dentro da Cloud Kicks precisam acessar essas informações, incluindo as equipes de suporte, vendas e entrega.
Para o site interno de produtos que você está criando, você está adicionando uma caixa de pesquisa que procura apenas o objeto personalizado Mercadorias. Não existe uma maneira elegante de especificar objetos personalizados em uma pesquisa SOSL. Inclua o nome sObject, como para qualquer outro objeto padrão, e acrescente um sufixo __c.
FIND {pink hi\-top} RETURNING Merchandise__c
SOQL
Estamos falando sem parar de SOSL, mas e SOQL? Bem, você utiliza SOQL para pesquisas de um único objeto quando conhece os campos a serem pesquisados, quando o termo de pesquisa é uma correspondência exata para o campo (correspondências parciais ou fora de ordem não funcionam), quando precisa de dados de campo de caixa de seleção, data ou número e quando você está buscando apenas alguns poucos resultados. (Para ver uma lista completa de quando usar SOQL, consulte a unidade anterior.)
Olhando para os casos de uso comuns anteriores neste módulo, talvez você tenha percebido alguns sinais de alerta com relação ao uso de SOQL. Por exemplo:
- Pesquisar em um único objeto – SOQL funciona quando você sabe em qual campo os dados residem. Como não especificamos o campo para march 2016 email, uma pesquisa SOSL é preferível a uma pesquisa SOQL. Em geral, se a consulta não especificar um campo alvo a ser pesquisado, SOSL funciona.
- Pesquisar em vários objetos – Como você só pode recuperar dados de vários objetos relacionados entre si, a pesquisa em vários objetos em SOQL é limitada. Em nosso cenário, os objetos não eram relacionados, então usamos SOSL.
- Pesquisar em objeto personalizado – Assim como no caso da pesquisa em um único objeto, é possível pesquisar em objetos personalizados em SOQL. Porém, não especificamos em que campo os dados residem para nosso termo de pesquisa pink hi-top. Além disso, SOQL pesquisa no banco de dados, não no índice. Então digamos que o registro inclua pink sneaker hi-top. A pesquisa SOQL não seria capaz de retornar os resultados corretos.