Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

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

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