Skip to main content

Criar consultas de relacionamento com objetos personalizados

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Interpretar diagramas no Criador de esquemas para identificar relacionamentos entre objetos.
  • Identificar o nome de relacionamento personalizado a ser usado em consultas de objetos personalizados.
  • Criar uma consulta filho para pai para objetos personalizados.
  • Criar uma consulta pai para filho para objetos personalizados.
Nota

Nota

Deseja aprender em português (Brasil)? Comece o desafio em um Trailhead Playground de português (Brasil) e use as traduções fornecidas entre parênteses para navegar. Copie e cole somente os valores em inglês porque as validações dos desafios dependem de dados em inglês. Se você não passar no desafio em sua organização de português (Brasil), recomendamos que (1) mude o local para os Estados Unidos, (2) mude o idioma para inglês, seguindo as instruções aqui, e (3) clique novamente no botão “Validar o desafio”.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

Acompanhar com o Trail Together

Deseja acompanhar um especialista enquanto trabalha nesta etapa? Veja este vídeo que faz parte da série Trail Together no Trailhead Live.

(Este clipe começa na marca dos 51:38 minutos, caso você queira retroceder e ver o início da etapa novamente.)

Iniciar o seu Trailhead Playground e instalar um pacote

Os exemplos e as atividades práticas no restante deste módulo usam um aplicativo imobiliário de exemplo chamado DreamHouse. Vamos instalar o aplicativo em seu Trailhead Playground e importar os dados de amostra.

Se ainda não estiver aberto, inicie seu Trailhead Playground. Se você vir uma guia na sua organização com o rótulo Instalar um pacote, ótimo! Avance para a etapa 1. Do contrário, no Iniciador de aplicativos (Iniciador de aplicativos), encontre e abra o Playground Starter e siga as etapas. Se não vir o aplicativo Playground Starter, copie este link para o pacote do DreamHouse e consulte Instalar um pacote ou aplicativo para concluir um desafio do Trailhead na Ajuda do Trailhead.

  1. Clique na guia Instalar um pacote.
  2. Cole 04t3h000004mBpiAAE no campo.
  3. Clique em Instalar.
  4. Selecione Instalar apenas para administradores e clique em Instalar.
  5. Se for pedida a aprovação do acesso de terceiros, selecione Sim, conceder acesso... e clique em Continuar.

Quando a instalação do pacote for concluída, você verá uma página de confirmação e receberá um email no endereço associado ao Playground.

Importar dados do DreamHouse

  1. Clique em Iniciador de aplicativos, digite Dream na caixa de pesquisa e selecione o aplicativo DreamHouse.
  2. Clique na guia Configurações. (Se você não vir a guia Configurações, expanda a lista Mais.)
  3. Clique em Importar dados.
  4. Clique na guia Propriedades e familiarize-se com os dados da amostra.

Explorar o esquema DreamHouse

Até agora, só consultamos objetos padrão. Agora vamos discutir como consultar objetos personalizados. Usamos objetos no aplicativo DreamHouse, então examinemos primeiro o esquema DreamHouse (modelo de dados) para entender como os dados estão estruturados.

Abrir o Criador de esquemas

  1. Em seu Trailhead Playground, clique em Configuração e selecione Setup (Configuração).
  2. Clique em Gerenciador de objetos.
  3. Clique em Criador de esquemas.
  4. Na guia Objetos, clique em Limpar tudo.
  5. Se você vir Broker em vez de Broker__c, clique em Exibir opções e selecione Exibir nomes de elementos.
  6. Lembre-se que no código usamos nomes de API de campo. Exibir nomes de elementos nos mostra nomes de API de campo em vez de rótulos de campo. (O nome de API para um objeto personalizado é o nome do objeto personalizado com __c [sublinhado sublinhado c] adicionado no final.)

  7. Na lista Selecionar de, escolha Objetos personalizados.
  8. Selecione Broker__c e Property__c. Eles são os objetos personalizados que usamos nesta unidade.
  9. Clique em Layout automático.
  10. Examine os campos de propriedade.
  11. O objeto personalizado Property__c tem dois campos personalizados: Picture__c e Broker__c. (O nome de API para um campo personalizado é o nome do campo personalizado com __c [sublinhado sublinhado c] adicionado no final.)

    O Criador de esquemas exibindo os objetos personalizados Broker__c e Property__c. No objeto personalizado Property__c, os campos Broker__c e Picture__c personalizados estão destacados.

  12. Passe o mouse sobre a linha de relacionamento que liga Property__c a Broker__c.
  13. Há um relacionamento de pesquisa do campo personalizado Broker__c no objeto personalizado Property__c ao objeto personalizado Broker__c.

    Os objetos personalizados Broker__c e Property__c no Criador de esquemas. O campo personalizado Broker__c no objeto Property__c tem um relacionamento de pesquisa do objeto personalizado Property__c para o objeto personalizado Broker__c.

  14. No elemento Property__c, clique no ícone de engrenagem e selecione Exibir objeto.
    O Gerenciador de objetos abre e exibe o objeto Property__c.
  15. Clique em Campos e relacionamentos.
  16. Clique no rótulo de campo Broker.
  17. Na seção Opções de pesquisa, encontre o Nome do relacionamento filho.

Agora sabemos que Property__c é filho de Broker__c e que o nome do relacionamento entre um imóvel e um corretor é Properties. (Lembre-se, o nome do relacionamento é tipicamente a forma plural do nome do objeto filho.)

Consultar objetos personalizados

A consulta de um objeto personalizado é muito parecida com a consulta de um objeto padrão, mas existem algumas diferenças.

Considere este requisito:

"Obter uma lista de todos os imóveis com o endereço da propriedade, a imagem e corretor designado."

Bem simples, certo? Consultamos o objeto personalizado Property__c e obtemos os campos personalizados Address__c, Picture__c e Broker__c. Vamos testar isso.

Criar uma consulta

  1. No Editor de consultas, digite o seguinte:
    SELECT Address__c, Picture__c, Broker__c FROM Property__c
  2. Clique em Executar.
    As primeiras seis linhas de seus resultados devem ser:
    Resultados da consulta - Total de linhas: 12
    Address__c
    Picture__c
    Broker__c
    18 Henry st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    24 Pearl st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    72 Francis st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    32 Prince st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    110 Baxter st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    448 Hannover St
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...

Observe que o conteúdo da coluna Broker__c não é muito útil. Isso acontece porque o campo Broker__c no objeto Property__c é uma pesquisa do objeto Broker. Campos com relacionamentos de pesquisa contêm o ID do objeto relacionado. Para obter o nome do corretor, precisaremos de uma consulta de relacionamento.

Criar uma consulta filho para pai

Como Broker__c é pai de Property__c, precisamos de uma consulta filho para pai. Usamos o nome do relacionamento e a notação de ponto para obter o campo Nome do objeto Broker__c.

  1. No Editor de consulta, mude Broker__c para Broker__c.Name, assim:
    SELECT Address__c, Picture__c, Broker__c.Name FROM Property__c
  2. Clique em Executar. (Você receberá uma mensagem de erro.)
    Mensagem de erro
    Não entendi o relacionamento "Broker__c" no caminho do campo. Se você está tentando usar um relacionamento personalizado, anexe o "__r" após o nome de relacionamento personalizado.

Oooops! O que aconteceu? Lembre-se que Broker__c é um campo personalizado no objeto Property. O que queremos é o objeto relacionado Broker__c.

Usar o nome de relacionamento personalizado na consulta

Para especificar o objeto relacionado Broker__c (não o campo Broker__c), mudamos __c para __r (sublinhado sublinhado r). Broker__r é o nome de relacionamento personalizado. Indica que queremos percorrer o relacionamento de Property__c para o objeto Broker__c. Essa parte da consulta diz: "Obter o campo Nome do objeto personalizado Broker__c relacionado." Vamos atualizar nossa consulta.

  1. No Editor de consulta, mude Broker__c para Broker__r, assim:
    SELECT Address__c, Picture__c, Broker__r.Name FROM Property__c
  2. Clique em Executar.

    As seis primeiras linhas de resultados devem ser:
    Resultados da consulta - Total de linhas: 12
    Address__c
    Picture__c
    Broker__r.Name
    18 Henry st
    https://s3-us-west-2.amazonaws.com...
    Caroline Kingsley
    24 Pearl st
    https://s3-us-west-2.amazonaws.com...
    Michael Jones
    72 Francis st
    https://s3-us-west-2.amazonaws.com...
    Jonathan Bradley
    32 Prince st
    https://s3-us-west-2.amazonaws.com...
    Jennifer Wu
    110 Baxter st
    https://s3-us-west-2.amazonaws.com...
    Olivia Green
    448 Hannover St
    https://s3-us-west-2.amazonaws.com...
    Miriam Aupont

Muito melhor. Em vez do ID, agora temos o campo Nome do objeto personalizado Broker.

Criar uma consulta pai para filho

Retornamos com sucesso cada imóvel com seu corretor relacionado. E se quisermos o oposto?

Requisito:

"Obter os nomes de todos os corretores com o endereço e o preço de todas as propriedades atribuídas a cada corretor."

Como queremos uma lista de corretores, consultamos o objeto Broker__c na nossa consulta principal:

SELECT Name FROM Broker__c

Broker é o pai, ou seja, a consulta pai para filho precisa de uma subconsulta do objeto filho. Usamos o nome do relacionamento filho na subconsulta.

Qual é o nome de relacionamento para uma subconsulta do objeto Property__c? Verifique os detalhes do campo Broker no objeto Property.

Na página Detalhes para o campo Broker do objeto Property, em Opções de pesquisa, o Nome do relacionamento filho é Properties.

O Nome do relacionamento filho é Properties. Por se tratar de um relacionamento personalizado, quando o usamos em uma consulta, anexamos __r (Properties__r). Assim, nossa subconsulta (entre parênteses) é:

(SELECT Address__c, Price__c FROM Properties__r)

Quando inserimos a subconsulta na consulta principal, a consulta completa é:

SELECT Name, (SELECT Address__c, Price__c FROM Properties__r) FROM Broker__c

Executar a consulta

  1. No Editor de consultas, digite o seguinte:
    SELECT Name, (SELECT Address__c, Price__c FROM Properties__r) FROM Broker__c
  2. Clique em Executar.
    As primeiras oito linhas de seus resultados devem ser assim:

    Resultados da consulta: Total de linhas: 8. A primeira coluna lista nomes de corretores. A segunda coluna contém uma lista separada por vírgulas de endereços e preços de imóveis.

Perfeito! Agora temos uma lista de todos os corretores e uma lista separada por vírgulas dos imóveis de cada corretor. Quando estiver desenvolvendo consultas, lembre-se que o Editor de consulta do Developer Console oferece uma maneira fácil de testar e ajustar suas consultas SOQL.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback