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.
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 (), 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.
- Haga clic en la ficha Instalar un paquete.
- Pegue
04t3h000004mBpiAAE
en el campo. - Haga clic en Instalar.
- Seleccione Instalar solo para administradores y, a continuaciĆ³n, haga clic en Instalar.
- 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
- Haga clic en
, escriba
Dream
en el cuadro de bĆŗsqueda y seleccione la aplicaciĆ³n DreamHouse. - Haga clic en la ficha ConfiguraciĆ³n. (Si no ve la ficha ConfiguraciĆ³n, expanda la lista MĆ”s).
- Haga clic en Importar datos.
- 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
- En su Trailhead Playground, haga clic en
y seleccione ConfiguraciĆ³n.
- Haga clic en Gestor de objetos.
- Haga clic en Generador de esquemas.
- En la ficha Objetos, haga clic en Borrar todo.
- Si ve Broker en vez de Broker__c, haga clic en Ver opciones y seleccione Mostrar nombres de elementos.
-
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).
- En la lista Seleccionar desde, seleccione Objetos personalizados.
- Seleccione Broker__c y Property__c. Estos son los objetos personalizados que utilizamos en esta unidad.
- Haga clic en Formato automƔtico.
- Examine los campos de propiedad.
-
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).
- Pase el cursor sobre la lĆnea de relaciĆ³n que conecta Property__c con Broker__c.
-
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.
- 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. - Haga clic en Campos y relaciones.
- Haga clic en la etiqueta de campo Agente inmobiliario.
- 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
- En el Editor de consultas, escriba:
- 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.
- En el Editor de consultas, cambie Broker__c a Broker__c.Name, de esta forma:
- 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.
- En el Editor de consultas, cambie
Broker__c
aBroker__r
, de esta forma: - 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:
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.
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
- En el Editor de consultas, escriba:
- Haga clic en Ejecutar.
Las primeras ocho filas de los resultados deberĆan tener un aspecto similar al siguiente:
Ā”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.