Skip to main content
ƚnase a nosotros en TDX, San Francisco o en Salesforce+ del 5 al 6 de marzo en la conferencia de desarrolladores para la era del agente de la IA. Regƭstrese ahora.

Crear consultas de relaciĆ³n con objetos personalizados

Objetivos de aprendizaje

DespuƩs de completar esta unidad, podrƔ:

  • Interpretar diagramas en el Generador de esquemas para identificar relaciones de objetos.
  • Identificar el nombre de relaciĆ³n personalizada para utilizar consultas de objetos personalizados.
  • Crear una consulta Secundario a Principal para objetos personalizados.
  • Crear una consulta Principal a Secundario para objetos personalizados.
Nota

Nota

ĀæEs su idioma de aprendizaje espaƱol (LATAM)? Comience el reto en un Trailhead Playground en espaƱol (LATAM) y utilice las traducciones entre parĆ©ntesis para navegar. Copie y pegue solo los valores en inglĆ©s, ya que las validaciones del reto dependen de los datos en ese idioma. Si no aprueba el reto en su organizaciĆ³n en espaƱol (LATAM), recomendamos que (1) cambie la configuraciĆ³n local a Estados Unidos, (2) cambie el idioma a inglĆ©s (segĆŗn estas instrucciones) y, luego, (3) haga clic en el botĆ³n ā€œCheck Challengeā€ (Comprobar el reto) nuevamente.

Consulte la insignia Trailhead en su idioma para obtener mĆ”s informaciĆ³n sobre cĆ³mo aprovechar la experiencia de Trailhead en otros idiomas.

Siga el proceso con Trail Together

ĀæDesea seguir el proceso con un experto a medida que realiza este paso? Eche un vistazo a este video, parte de la serie Trail Together en Trailhead Live.

(Este video comienza en el minuto 51:38, en caso de que desee rebobinar y mirar el comienzo del paso nuevamente).

Iniciar Trailhead Playground e instalar un paquete

Los ejemplos y las actividades prĆ”cticas en el resto de este mĆ³dulo utilizan una aplicaciĆ³n de muestra de bienes inmuebles denominada DreamHouse. Instalemos la aplicaciĆ³n en su Trailhead Playground e importemos los datos de muestra.

Si aĆŗn no estĆ” abierto, inicie su Trailhead Playground. Si ve una ficha en su organizaciĆ³n etiquetada como Instalar un paquete, Ā”excelente! Salte el paso 1. En caso contrario, haga clic en el Iniciador de aplicaciĆ³n (Iniciador de aplicaciĆ³n), busque y abra Playground Starter y siga los pasos. Si no ve la aplicaciĆ³n Playground Starter, copie este vĆ­nculo en el paquete de DreamHouse y consulte Instalar un paquete o una aplicaciĆ³n para completar un reto de Trailhead en la Ayuda de Trailhead.

  1. Haga clic en la ficha Instalar un paquete.
  2. Pegue 04t3h000004mBpiAAE en el campo.
  3. Haga clic en Instalar.
  4. Seleccione Instalar solo para administradores y, a continuaciĆ³n, haga clic en Instalar.
  5. Si se solicita aprobar el acceso de terceros, seleccione SĆ­, conceder accesoā€¦ y haga clic en Continuar.

Cuando el paquete termine de instalarse, verĆ” una pĆ”gina de confirmaciĆ³n y recibirĆ” un email en la direcciĆ³n asociada con su Playground.

Importar datos de DreamHouse

  1. Haga clic en Iniciador de aplicaciĆ³n, escriba Dream en el cuadro de bĆŗsqueda y seleccione la aplicaciĆ³n DreamHouse.
  2. Haga clic en la ficha ConfiguraciĆ³n. (Si no ve la ficha ConfiguraciĆ³n, expanda la lista MĆ”s).
  3. Haga clic en Importar datos.
  4. Haga clic en la ficha Propiedades y familiarĆ­cese con los datos de muestra.

Explorar el esquema de DreamHouse

Hasta ahora, consultamos solo objetos estĆ”ndar. Ahora hablaremos de cĆ³mo consultar objetos personalizados. Se utilizan objetos en la aplicaciĆ³n DreamHouse, asĆ­ que en primer lugar, examinemos el esquema (modelo de datos) de DreamHouse para entender cĆ³mo se estructuran los datos.

Abrir el Generador de esquemas

  1. En su Trailhead Playground, haga clic en ConfiguraciĆ³n y seleccione ConfiguraciĆ³n.
  2. Haga clic en Gestor de objetos.
  3. Haga clic en Generador de esquemas.
  4. En la ficha Objetos, haga clic en Borrar todo.
  5. Si ve Broker en vez de Broker__c, haga clic en Ver opciones y seleccione Mostrar nombres de elementos.
  6. Recuerde que en el cĆ³digo se utilizan nombres de API de campo. Mostrar nombres de elementos muestra nombres de API de campo en vez de etiquetas de campo. (El nombre de API para un objeto personalizado es el nombre de objeto personalizado con __c [guion bajo guion bajo c] agregado al final).

  7. En la lista Seleccionar desde, seleccione Objetos personalizados.
  8. Seleccione Broker__c y Property__c. Estos son los objetos personalizados que utilizamos en esta unidad.
  9. Haga clic en Formato automƔtico.
  10. Examine los campos de propiedad.
  11. El objeto personalizado Property__c tiene dos campos personalizados: Picture__c y Broker__c. (El nombre de API para un campo personalizado es el nombre de campo personalizado con __c [guion bajo guion bajo c] agregado al final).

    El Generador de esquemas muestra los objetos personalizados de agente inmobiliario y de propiedad Broker__c y Property__c, respectivamente. En el objeto personalizado Property__c, los campos personalizados Broker__c y Picture__c estƔn resaltados.

  12. Pase el cursor sobre la lĆ­nea de relaciĆ³n que conecta Property__c con Broker__c.
  13. Hay una relaciĆ³n de bĆŗsqueda desde el campo personalizado Broker__c en el objeto personalizado Property__c hasta el objeto personalizado Broker__c.

    Los objetos personalizados Broker__c y Property__c en el Generador de esquemas. El campo personalizado Broker__c en el objeto Property__c tiene una relaciĆ³n de bĆŗsqueda desde el objeto personalizado Property__c hasta el objeto personalizado Broker__c.

  14. En el elemento Property__c, haga clic en el icono de engranaje y seleccione Ver objeto.
    El Gestor de objetos se abre y muestra el objeto Property__c.
  15. Haga clic en Campos y relaciones.
  16. Haga clic en la etiqueta de campo Agente inmobiliario.
  17. En la secciĆ³n Opciones de bĆŗsqueda, busque el nombre de relaciĆ³n de secundarios.

Ahora sabemos que Property__c es un secundario de Broker__c y que el nombre de la relaciĆ³n entre una propiedad y un agente inmobiliario es Propiedades. (Recuerde que el nombre de relaciĆ³n generalmente es la forma plural del nombre de objeto secundario).

Consultar objetos personalizados

Consultar un objeto personalizado es muy similar a consultar un objeto estƔndar, pero hay algunas diferencias.

Tenga en cuenta este requisito:

ā€œConsiga una lista de todas las propiedades con la direcciĆ³n de propiedad, la imagen y el agente inmobiliario asignadoā€.

Bastante sencillo, Āæverdad? Se consulta el objeto personalizado de imagen Picture__c y se obtienen los campos personalizados de direcciĆ³n, imagen y agente inmobiliario Address__c, Picture__c y Broker__c, respectivamente. ProbĆ©moslo.

Crear una consulta

  1. En el Editor de consultas, escriba:
    SELECT Address__c, Picture__c, Broker__c FROM Property__c
  2. Haga clic en Ejecutar.
    Las primeras seis filas de resultados deberĆ­an ser:
    Resultado de consulta: Total de filas: 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 el contenido de la columna Broker__c no es muy Ćŗtil. Esto se debe a que el campo Broker__c en el objeto Property__c es una bĆŗsqueda del objeto Agente inmobiliario. Los campos con relaciones de bĆŗsqueda contienen el Id. del objeto relacionado. Para obtener el nombre del agente inmobiliario, se necesita una consulta de relaciĆ³n.

Crear una consulta Secundario a Principal

Debido a que Broker__c es el principal de Property__c, se necesita una consulta Secundario a Principal. Utilizamos el nombre de relaciĆ³n y la notaciĆ³n de puntos para el campo Nombre del objeto Broker__c.

  1. En el Editor de consultas, cambie Broker__c a Broker__c.Name, de esta forma:
    SELECT Address__c, Picture__c, Broker__c.Name FROM Property__c
  2. Haga clic en Ejecutar. (RecibiĆ³ un mensaje de error).
    Mensaje de error
    No se entendiĆ³ la relaciĆ³n ā€œBroker__cā€ en la ruta de campo. Si intenta utilizar una relaciĆ³n personalizada, asegĆŗrese de anexar ā€œ__rā€ despuĆ©s del nombre de relaciĆ³n personalizado.

Ā”Upsss! ĀæQuĆ© ocurriĆ³? Recuerde que Broker__c es un campo personalizado en el objeto Propiedad. Lo que queremos es el objeto relacionado Broker__c.

Utilizar el nombre de relaciĆ³n personalizado en la consulta

Para especificar el objeto relacionado Broker__c (no el campo Broker__c), se cambia __c a __r (guion bajo-guion bajo-r). Broker__r es el nombre de relaciĆ³n personalizado. Indica que queremos atravesar la relaciĆ³n desde Property__c hasta el objeto Broker__c. Esta porciĆ³n de la consulta dice: ā€œConsiga el campo de nombre del objeto personalizado Broker__c relacionadoā€. Vamos a actualizar nuestra consulta.

  1. En el Editor de consultas, cambie Broker__c a Broker__r, de esta forma:
    SELECT Address__c, Picture__c, Broker__r.Name FROM Property__c
  2. Haga clic en Ejecutar.

    Las primeras seis filas de resultados deberĆ­an ser:
    Resultado de consulta: Total de filas: 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

Mucho mejor. En lugar del Id., ahora tenemos el campo de nombre del objeto personalizado Agente inmobiliario.

Crear una consulta Principal a Secundario

Logramos devolver cada propiedad con su agente inmobiliario relacionado correctamente. ĀæQuĆ© sucede si queremos lo opuesto?

Requisito:

ā€œConsiga los nombres de todos los agentes inmobiliarios con la direcciĆ³n y el precio de todas las propiedades asignadas a cada agente inmobiliarioā€.

Debido a que queremos una lista de todos los agentes inmobiliarios, en nuestra consulta principal, consultamos el objeto Broker__c:

SELECT Name FROM Broker__c

El agente inmobiliario es principal asĆ­ que la consulta Principal a Secundario necesita una subconsulta del objeto secundario. Utilizamos el nombre de relaciĆ³n secundaria en la subconsulta.

ĀæCuĆ”l es el nombre de relaciĆ³n para una subconsulta del objeto Property__c? Compruebe los detalles para el campo Agente inmobiliario en el objeto Propiedad.

En la pĆ”gina Detalles para el campo Agente inmobiliario del objeto Propiedad, en Opciones de bĆŗsqueda, el nombre de relaciĆ³n secundaria es Propiedades.

El nombre de relaciĆ³n secundaria es Propiedades. Debido a que esta es una relaciĆ³n personalizada, cuando la utilizamos en una consulta, se anexa __r (Properties__r). AsĆ­ que nuestra subconsulta (en parĆ©ntesis) es:

(SELECT Address__c, Price__c FROM Properties__r)

Cuando ingresamos la subconsulta en la consulta principal, nuestra consulta es:

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

Ejecutar la consulta

  1. En el Editor de consultas, escriba:
    SELECT Name, (SELECT Address__c, Price__c FROM Properties__r) FROM Broker__c
  2. Haga clic en Ejecutar.
    Las primeras ocho filas de los resultados deberĆ­an tener un aspecto similar al siguiente:

    Resultados de consulta: Filas totales: 8. La primera columna enumera los nombres de agentes inmobiliarios. La segunda columna contiene una lista separada por comas de las direcciones y los precios de propiedades.

Ā”Perfecto! Ahora tenemos una lista de todos los agentes inmobiliarios y una lista separada por comas de las propiedades de cada agente inmobiliario. Cuando desarrolle consultas, tenga en cuenta que el Editor de consultas de Developer Console brinda una forma sencilla de probar y ajustar sus consultas SOQL.

Recursos

Reto prƔctico

+500 puntos

Prepararse

CompletarĆ” esta/este unidad en su propia organizaciĆ³n de prĆ”cticas. Haga clic en Iniciar para empezar a trabajar, o haga clic en el nombre de su organizaciĆ³n para seleccionar una diferente.

Su reto

Crear una consulta de relaciĆ³n

Utilice SOQL para identificar las propiedades enumeradas con DreamHouse Realty en los Ćŗltimos 30 dĆ­as.

Si todavĆ­a no instalĆ³ el paquete DreamHouse ni importĆ³ los datos de muestra, siga las instrucciones que se indican al inicio de esta unidad para hacerlo ahora.

  • Cree una clase
    • Name (Nombre): PropertyUtility
  • Cree un mĆ©todo
    • Name (Nombre): newListedProperties
    • Keywords (Palabras clave): public, static (pĆŗblico, estĆ”tico) y void (nulo)
  • Cree una lista
    • Name (Nombre): newPropList
  • Cree una consulta y asigne los resultados de la consulta a la lista
    • Obtenga esta informaciĆ³n:
      • El nombre de la propiedad
      • La direcciĆ³n de email del agente inmobiliario
      • El tiempo que la propiedad lleva en el mercado
      (Sugerencia: Utilice nombres de API, no nombres de campo ni etiquetas de campo)
    • Object (Objeto): Property (Propiedad)
    • Condition (Estado): The property was listed within the last 30 days (La propiedad se puso a la venta en los Ćŗltimos 30 dĆ­as)
  • Cree un bucle for de iteraciĆ³n entre los resultados de la consulta
    • Object (Objeto): Property (Propiedad)
    • List name (Nombre de la lista): newPropList
    • Para cada elemento, concatene el nombre de la propiedad, seguido de dos puntos y la direcciĆ³n de email del agente inmobiliario: <Property Name> : <Broker Email (Nombre de la propiedad : Email del agente inmobiliario)>
    • Almacene la cadena concatenada en una variable con el nombre propEmail
    • Imprima la variable propEmail en el registro de depuraciĆ³n
Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantarƭa saber mƔs sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

MĆ”s informaciĆ³n Continuar a Compartir comentarios