The Ultimate Guide to Lookups in Model-Driven Power Apps and Dataverse

The Ultimate Guide to Lookups in Model-Driven Power Apps and Dataverse

Guía Definitiva sobre Lookups en Aplicaciones Model Driven

Introducción a los Lookups

  • Se presenta una guía completa sobre lookups en aplicaciones model driven, abordando preguntas comunes y conceptos clave.
  • Se explican las tablas en Dataverse, sus tipos de relaciones y el concepto fundamental de un lookup.

Conceptos Clave de Lookups

  • Se discute la importancia de la columna de nombre principal y cómo configurarla adecuadamente para evitar problemas.
  • Se introduce el mapeo, que permite copiar datos entre tablas relacionadas, y se menciona la creación de lookups filtrados.

Relaciones entre Tablas

  • Las relaciones entre tablas son esenciales para construir modelos de datos; se pueden crear tres tipos principales: uno a muchos, muchos a uno y muchos a muchos.
  • La relación uno a muchos es común en este tutorial; se ilustra con el ejemplo del alquiler de coches donde una persona puede tener múltiples contratos.

Ejemplos Prácticos

  • En un escenario donde cada coche necesita mantenimiento, se explica cómo cada coche puede tener múltiples citas de servicio pero cada cita solo corresponde a un coche.
  • Se aborda la relación inversa (muchos a uno), donde varios contratos pueden estar asociados con una sola persona.

Creación de Columnas Lookup

  • Para manejar situaciones complejas como libros con múltiples autores, se requiere una relación muchos a muchos en lugar de un simple lookup.
  • Se muestra cómo crear una columna lookup dentro del entorno del creador (maker experience), conectando tablas sin necesidad de claves primarias adicionales.

Configuración Efectiva

  • Al agregar columnas lookup, se busca conectar registros específicos (como clientes o contactos), evitando redundancias en los datos.

Creación de Relaciones en Bases de Datos

Configuración de Búsqueda y Conexiones

  • Se inicia con una búsqueda estándar para establecer conexiones entre tablas, comenzando por la tabla de contactos.
  • Al guardar, se crea un vínculo visual (icono de lupa) que permite conectar registros relacionados, estableciendo así una relación uno a muchos entre las tablas del coche y el contacto.
  • La relación se puede crear desde cualquiera de las dos tablas; ambas opciones llevan al mismo resultado sin necesidad de realizar ambos pasos.
  • La elección del método depende del enfoque: bajo código o base de datos. Cada uno tiene su lógica en la creación de relaciones.

Integración en Formularios

  • Se arrastra y suelta información del cliente en un formulario existente sobre coches y detalles del leasing.
  • En la experiencia de la aplicación, se utiliza el icono de búsqueda para encontrar rápidamente a un cliente específico (ejemplo: Sally Sample).

Desafíos con Nombres Primarios

  • Se presenta un caso donde el nombre primario no es útil para identificar registros, como en citas de servicio donde solo aparece un número auto-generado.
  • La dificultad radica en que los nombres no son descriptivos ni útiles para la búsqueda efectiva dentro del sistema.

Mejora de Vistas Lookup

  • Para mejorar la utilidad, se configura lo que se llama "vista lookup", permitiendo personalizar qué columnas aparecen durante la búsqueda.
  • Es crucial considerar qué columna será el nombre primario al crear tablas; esto afecta directamente cómo se visualizarán los datos en las búsquedas.

Personalización y Publicación

  • Se eliminan columnas innecesarias y se añaden otras más relevantes (ejemplo: matrícula, marca y modelo del coche).
  • Después de ajustar las vistas, es importante publicar los cambios. El tiempo necesario para indexar estos campos varía según la cantidad de datos existentes.

Mejora en la Búsqueda de Información de Vehículos

Visualización y Búsqueda de Datos

  • Se ha reemplazado la fecha por el número de matrícula en la segunda columna, facilitando la búsqueda.
  • Al buscar un vehículo por su matrícula (ej. abc123), se puede encontrar fácilmente en la tabla.
  • Existe una opción de búsqueda avanzada que permite filtrar vehículos específicos, como todos los Camry disponibles.

Uso del Formulario de Vista Rápida

  • Para obtener más información sobre un vehículo específico, se utiliza un formulario de vista rápida que muestra detalles adicionales.
  • El formulario debe estar vinculado a la tabla correspondiente (vehículos), permitiendo visualizar datos relevantes sin confusión.

Personalización del Formulario

  • Se pueden crear múltiples formularios para diferentes escenarios; es recomendable ocultar el ID para evitar duplicados innecesarios en pantalla.
  • Al personalizar el formulario, se incluyen campos como marca, modelo y matrícula del vehículo, así como información del cliente.

Integración con Citas de Servicio

  • Se añade una sección al formulario de citas de servicio para mostrar información relevante del vehículo seleccionado.
  • La integración permite ver detalles como ID del coche, marca y matrícula directamente en el registro de cita.

Captura y Mapeo de Información

  • Si se desea capturar información adicional (como kilometraje), es necesario crear columnas equivalentes en ambas tablas con el mismo formato.

¿Cómo crear mapeos en Power Platform?

Creación de Mapeos

  • Se sugiere colocar la sección de detalles del automóvil para visualizar el kilometraje, que es un dato importante a incluir.
  • Para crear mapeos, es necesario regresar a la experiencia clásica en Power Platform. Los administradores deben habilitar esta opción desde el Centro de administración.
  • La relación entre el automóvil y la cita de servicio se establece como uno a muchos, facilitando el mapeo desde el automóvil hacia la cita de servicio.
  • Al abrir las entidades, se debe buscar la relación específica entre el automóvil y la cita de servicio para expandirla y ver las opciones disponibles.
  • Se crea un nuevo mapeo seleccionando los campos correspondientes (kilometraje del automóvil al kilometraje de la cita).

Publicación y Lógica de Mapeo

  • Existe una opción para generar automáticamente todos los mapeos posibles, pero se recomienda hacerlo manualmente para mayor control sobre cada campo.
  • La lógica del mapeo debe ir del padre al hijo; por lo tanto, se debe iniciar desde el automóvil antes de crear una cita de servicio.
  • En el formulario principal, se puede observar cómo se presenta la relación uno a muchos desde la perspectiva del automóvil con múltiples citas asociadas.

Configuración del Formulario

  • Se cambia el nombre de una pestaña a "Citas de Servicio" y se ajusta su etiqueta correspondiente dentro del formulario.
  • Se incorpora una subgrilla que muestra solo las citas relacionadas con ese vehículo específico, asegurando que los datos sean relevantes y accesibles.

Ejemplo Práctico

  • Al programar un servicio para un vehículo específico, se pueden ver todas las citas anteriores y agregar nuevas entradas directamente relacionadas con ese vehículo.
  • Aunque algunos campos son solo lectura inicialmente, estos están vinculados a tablas donde los datos pueden ser escritos o modificados posteriormente.

Consejos Adicionales sobre Mapeo

  • Al mapear columnas tipo elección (por ejemplo, color del coche), es crucial seleccionar "sí" como opción recomendada para facilitar sincronización global entre tablas.

Filtrado y Búsquedas Relacionadas

Cómo implementar búsquedas relacionadas en una aplicación

Creación de columnas para estado y ciudad

  • Se añade una nueva columna llamada "Estado" que busca información en la tabla de estados.
  • Se crea otra columna llamada "Ciudad", también como búsqueda en la tabla de ciudades, y se integra en el formulario principal.
  • Al guardar y publicar los cambios, se actualiza la aplicación para incluir las búsquedas de estado y ciudad.

Filtrado de ciudades por estado

  • Se observa que al buscar ciudades, aparecen todas las ciudades de Australia; sin embargo, se desea filtrar solo las locales.
  • Para aplicar el filtrado, se habilita la opción "filtrar por filas relacionadas" en la columna Ciudad, vinculándola al Estado seleccionado.
  • Después del filtrado, al seleccionar un estado específico (ej. Victoria), solo aparecen las ciudades correspondientes a ese estado.

Comportamiento dependiente entre tablas

  • Se demuestra cómo el comportamiento dependiente permite mostrar diferentes opciones según el estado seleccionado (ej. Bondi y Sydney para Nueva Gales del Sur).

Control de permisos para evitar duplicados

  • Se discute cómo los usuarios no administradores no pueden agregar nuevos registros (como coches), evitando así duplicaciones innecesarias.
  • La seguridad está configurada para que los usuarios básicos no tengan permiso para añadir filas a la tabla correspondiente.

Importación de datos con búsquedas relacionadas

  • En un escenario diferente relacionado con reclutamiento, se necesita importar aplicaciones que tienen dos búsquedas: una hacia roles y otra hacia contactos.
  • Al importar desde Excel o CSV, se revisa el mapeo asegurando que los campos utilizados sean únicos para facilitar la búsqueda correcta.

Mapeo adecuado durante importaciones

  • El campo "Rol" puede mapearse fácilmente porque sus nombres son únicos; sin embargo, los nombres completos en contactos pueden no serlo debido a errores ortográficos o duplicados.
  • Para mejorar la precisión del mapeo al importar candidatos, se opta por usar correos electrónicos como identificador único.

Resultados tras importación exitosa

¿Cómo manejar relaciones de muchos a muchos en bases de datos?

Introducción a la base de datos y búsqueda de autores

  • Se presenta una aplicación de base de datos llamada Bookworm, donde se busca el autor de un libro específico. La estructura incluye títulos, formatos y descripciones.
  • Al intentar agregar otro autor (Terry Pratchett), se observa que no se puede seleccionar sin reemplazar al autor existente, lo cual es un problema común en las relaciones uno a muchos.

Comprendiendo las relaciones entre libros y autores

  • Se explica que la relación actual es "muchos a uno", lo que limita la capacidad para asociar múltiples autores con un solo libro. Esto requiere una relación "muchos a muchos".
  • Se presentan dos opciones para manejar selecciones múltiples; la primera es una columna de selección múltiple, adecuada para listas cortas como formatos (papel, digital).

Limitaciones del enfoque actual

  • Aunque la selección múltiple funciona bien para listas estáticas pequeñas, no es práctica para bases de datos extensas con miles de libros y autores.
  • La experiencia del usuario sería deficiente si cada nuevo autor requiere cambios constantes en la configuración.

Creación de una relación muchos a muchos

  • Se propone crear una relación "muchos a muchos" entre libros y autores, ya que ambos pueden tener múltiples asociaciones.
  • Este tipo de relación evita complicaciones técnicas al crear tablas intermedias visibles; el sistema maneja esto automáticamente.

Implementación en el formulario

  • En el diseño del formulario principal, se eliminará la búsqueda simple por autor y se añadirá un subgrid para mostrar los autores relacionados.
  • El subgrid mostrará solo los nombres sin información adicional innecesaria. Se ajusta el diseño para mejorar la visualización.

Reflexiones finales sobre el modelo de datos

  • Con esta nueva configuración, tanto Terry como Neil pueden ser coautores del mismo libro. Es crucial pensar en el modelo de datos desde el inicio: ¿es una búsqueda simple o necesita ser configurada como "muchos a muchos"?

Agregar Autores Existentes

Interfaz de Usuario y Selección Múltiple

  • Se está trabajando en una interfaz que permite agregar autores existentes a un sistema.
  • El usuario puede buscar y seleccionar múltiples autores, como Neil Gaiman y Terry Pratchett.
  • La interfaz es completamente responsiva, adaptándose a diferentes tamaños de pantalla.
  • Al hacer zoom, se presenta una vista de tarjeta atractiva que mejora la experiencia visual.
Channel: Lisa Crosbie
Video description

This video answers all your questions about how to work with lookups in Dataverse and Model-Driven Power Apps, including - Why can't I add multiple values to a lookup? - What if I want to show something other than the primary name in a lookup? - How can I copy data from a related table? Jump straight to the section you want using the chapters, or come along for the whole ride and become an expert on all the things you can do with lookups. Did I miss your question? Let me know in the comments. Timestamps: 0:00 - Lookups - Your Questions Answered 1:40 - Table relationships in Dataverse 3:45 - Creating lookup columns 8:27 - Primary name and configuring the lookup view 12:29 - Quick View Forms 15:50 - Mapping data from one table to another 22:31 - Filtering - creating dependent lookups 25:56 - Security - stop a user creating a new record in a lookup 26:57 - Importing data - mapping to lookup columns 29:22 - Adding more than one record - choices and many to many tables