Ejercicio: Trabajar con datos relacionales de Dataverse
Como muchas otras empresas, Contoso tiene varias ubicaciones y permite a los empleados trabajar desde casa. A veces, estos empleados necesitan ir a la oficina y precisan de un escritorio para utilizarlo durante esa visita. Anteriormente, Contoso indicaba a sus empleados que, al llegar, recorrieran la ubicación de la oficina para buscar un escritorio disponible. Desde entonces, la empresa ha descubierto que este tipo de sistema de espacio de trabajo compartido, o hot desking, crea problemas con las licencias y la asistencia de TI. Como resultado, Contoso ha creado recientemente una solución de Microsoft Power Platform que permitirá a los empleados ver qué escritorios están disponibles y reservar uno con anticipación.
En este ejercicio, mejorará la aplicación de lienzo desde Power Apps.
Objetivos
El objetivo de este ejercicio es que aprenda a trabajar con las siguientes relaciones:
Uno a varios y varios a uno
Varios a varios
Requisito previo
Para completar este ejercicio, necesitará un entorno con Microsoft Dataverse.
Ejercicio 1: Importar una solución
En este ejercicio, importará una solución inicial al entorno de prueba y cargará datos de ejemplo mediante un flujo de nube de Microsoft Power Automate. Esta solución contiene cinco tablas, una aplicación de lienzo, una aplicación basada en modelo y un flujo de nube.
Tarea 1: Importar la solución inicial
En esta tarea, importará una solución a su entorno.
Para completar este ejercicio, necesitará descargar el archivo ZIP. Seleccione la descarga cuando se abra el vínculo.
Vaya a Power Apps Maker Portal y seleccione el entorno que quiera utilizar para este laboratorio.
Seleccione Soluciones > Importar solución.
Seleccione Examinar.
Seleccione la solución ContosoHotDesking_1_0_0_0.zip y elija Abrir.
Seleccione Siguiente.
Seleccione Siguiente de nuevo.
En la lista desplegable Seleccionar una conexión, si ya ha proporcionado sus credenciales, seleccione Importar y vaya a la tarea 2. De lo contrario, seleccione + Nueva conexión.
Seleccione Crear.
Proporcione sus credenciales.
Cierre la ventana o pestaña del explorador de conexiones.
Seleccione Actualizar.
Seleccione Importar y espere a que se complete la importación de la solución.
Tarea 2: Cargar datos de ejemplo
En esta tarea, ejecutará un flujo de nube que creará datos de ejemplo.
Seleccione Soluciones y elija la opción para abrir la solución Espacio de trabajo compartido de Contoso que ha importado.
Seleccione Flujos de nube y, luego, seleccione el flujo Load Sample Hot Desk Data para abrirlo.
Cuando se abra el flujo, seleccione Ejecutar en la barra de comandos.
Seleccione Ejecutar flujo en la parte inferior del cuadro de diálogo.
Seleccione Listo y espere a que se complete la ejecución del flujo. Seleccione el botón Actualizar para ver el estado de la ejecución del flujo. El estado Correcto debe mostrarse cuando se completa la ejecución del flujo.
Tarea 3: Ejecutar aplicaciones
En esta tarea, ejecutará las aplicaciones Hot Desking Manager y Hot Desking para familiarizarse con ellas. Luego, terminará de configurar los datos.
Vuelva a la solución, o vaya al Power Apps Maker Portal, y seleccione el entorno y la solución que está utilizando para este laboratorio.
Seleccione Aplicaciones y elija la aplicación Hot Desking Manager para iniciarla.
Seleccione Vistas de escritorios y compruebe que haya datos de ejemplo.
Seleccione Vista de ubicaciones y asegúrese de que tiene datos de ejemplo.
Seleccione Vista de características de escritorios y asegúrese de que haya datos de ejemplo.
Seleccione Ubicaciones, seleccione tres ubicaciones y elija Editar.
En el campo Primary Contact, seleccione a un usuario y, luego, elija Guardar.
Cierre la aplicación Hot Desking Manager seleccionando Atrás.
Compruebe que Aplicaciones siga seleccionado, seleccione la aplicación Hot Desking y, luego, Editar. La aplicación debería abrirse en make.powerapps.com.
Seleccione HomeScreen y Reproducir.
Seleccione el botón Nueva reserva.
Seleccione Edificio 1, Oficina cerrada y Escritorio n.º 1.
Seleccione una fecha futura y luego seleccione Reservar para 9:00.
Seleccione de nuevo Nueva reserva.
Seleccione Edificio 2, Sala de Teams y Mesa n.º 2.
Seleccione una fecha futura y luego seleccione Reservar para 13:00.
Agregue algunas reservas más con diferentes combinaciones.
Ahora debería tener al menos cuatro reservas. Cierre la vista previa seleccionando la X en la esquina superior derecha.
Expanda la lista desplegable ReserveDeskScreen, expanda Gallery3 y seleccione Button1.
Vaya a la barra de fórmulas y revise la fórmula para OnSelect. Cuando el usuario selecciona la opción Reservar, se utiliza una función Patch() para crear una nueva fila Reserva. Esta nueva fila tiene relaciones con el escritorio y su usuario. La relación de usuario se establece a partir de una variable global que se establece en la aplicación al inicio.
Revise otras fórmulas en la aplicación para familiarizarse con el funcionamiento del proceso.
Seleccione el botón Atrás cuando haya terminado de revisar las fórmulas.
No se vaya de esta página.
Ejercicio 2: Crear una relación
En este ejercicio, creará una relación para sus escritorios favoritos. Esta relación será una relación de varios a varios entre las tablas User y Desk. Esta relación le permitirá implementar una característica con la que un usuario puede etiquetar un escritorio como favorito.
Tarea: Crear una relación
En esta tarea, creará una relación para sus escritorios favoritas.
Seleccione Tablas.
Seleccione la tabla Desk.
Seleccione la opción Relaciones en el panel Esquema. Seleccione + Nueva relación y Uno a varios.
Busque/seleccione Usuario para Tabla relacionada (varios) y, luego, seleccione Listo.
Seleccione la flecha Atrás en la parte superior izquierda.
Vuelva a la solución seleccionando Objetos o Información general en el menú del lado izquierdo y, luego, seleccione Publicar todas las personalizaciones desde la barra de comandos.
Espere a que se complete el proceso de publicación.
Ejercicio 3: Añadir información a una pantalla de reserva
En este ejercicio, cambiará la galería de reservas para mostrar las reservas creadas por el usuario actual en lugar de mostrar todas las reservas. También mostrará más información en la lista de reservas.
Tarea: Editar la aplicación
En esta tarea, editará la aplicación Administrador de productos de Contoso.
Vaya a Power Apps Maker Portal y vuelva al entorno y a la solución que esté empleando para este laboratorio.
Seleccione Aplicaciones, elija la aplicación Hot Desking y ábrala en el modo de edición.
Expanda HomeScreen y seleccione Gallery5.
Vaya a la barra de fórmulas y cambie la fórmula Elementos a la siguiente fórmula. Esta fórmula filtrará una reserva que esté asociada con el usuario actual, y utiliza la relación de uno a varios entre el usuario y la tabla de reservas.
LookUp(Users,'Primary Email'=currentUserEmail).'Reservations (contoso_Reservation_ReservedFor_SystemUser)'Seleccione el icono para editar la galería.
Vaya al menú desplegable Insertar y seleccione Etiqueta de texto.
Luego, cambie el valor de Texto por la siguiente fórmula. Esta fórmula utiliza la relación de uno a varios entre la reserva y las tablas de escritorios.
ThisItem.Desk.NameCambie el tamaño y la posición de la etiqueta.
Mientras aún está en modo de edición, seleccione para agregar otra Etiqueta.
Seleccione la etiqueta que ha añadido y establezca el valor Texto en la fórmula siguiente. La siguiente fórmula muestra que está usando dos niveles de profundidad en las relaciones, comenzando desde la reserva y usando Escritorio para obtener la Ubicación.
ThisItem.Desk.Location.PhoneCambie el tamaño y la posición de la etiqueta.
Mientras aún está en modo de edición, seleccione Etiqueta una vez más.
Seleccione la etiqueta que ha añadido y establezca el valor Texto en la fórmula siguiente.
If(IsBlank(ThisItem.Desk.Location.'Primary Contact'),"No Primary Contact",ThisItem.Desk.Location.'Primary Contact'.'Full Name')Cambie el tamaño y la posición de la etiqueta.
La galería de reservas debería parecerse a la imagen siguiente.
Seleccione Guardar.
Permanezca en la pantalla de edición de la aplicación para el siguiente ejercicio.
Ejercicio 4: Añadir un escritorio favorito
En este ejercicio, añadirá un icono con el que los usuarios podrán seleccionar sus escritorios favoritos. También añadirá una etiqueta que mostrará las características del escritorio.
Tarea: Añadir un favorito
En esta tarea, añadirá un escritorio favorito y también una etiqueta para mostrar las características del escritorio.
Expanda FindDeskScreen y seleccione GalleryDesks.
Seleccione el icono para Editar la galería.
Vaya a la pestaña Insertar, seleccione Iconos y, a continuación, seleccione uno de los iconos. Establecerá el icono específico en el siguiente paso mediante el uso de una fórmula. Por lo tanto, para este paso no importa qué icono elija.
Seleccione el icono que agregó y cambie el valor Icono a la fórmula siguiente. Esta fórmula mostrará el icono de pulgares hacia arriba relleno si el usuario no indicó este escritorio como favorito, o mostrará el icono de pulgares hacia arriba si el usuario ya ha seleccionado el escritorio como favorito.
`If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Icon.ThumbsUp,Icon.ThumbsUpFilled)` > [!NOTE] > The CountIf encounters a [delegation](/power-apps/maker/canvas-apps/delegation-overview/?azure-portal=true) issue. If you have a large number of rows in your app, you might have to use an alternate approach.Asegúrese de que aún tiene el icono seleccionado. Seleccione OnSelect y luego pegue la siguiente fórmula. Esta fórmula relacionará o anulará la relación de este escritorio y el usuario que inició sesión, dependiendo de si el usuario ya agregó el escritorio como favorito.
If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Unrelate(ThisItem.Users, currentUser), Relate(ThisItem.Users, currentUser))Vuelva a colocar el icono en la galería, como se muestra en la siguiente imagen.
Asegúrese de estar todavía en modo de edición de galería. Vaya a la pestaña Insertar y seleccione Etiqueta de texto.
Seleccione la etiqueta que ha añadido y establezca el valor Texto en la fórmula siguiente. Esta fórmula concatenará los nombres de las características de escritorio y utilizará la relación de varios a varios entre las tablas Escritorio y Características de escritorio.
Concat(ThisItem.'Desk Features', Name, " , " )Cambie el tamaño y la posición de la etiqueta para que se ajuste mejor al espacio.
Guarde la aplicación.
Seleccione Reproducir para obtener una vista preliminar de la aplicación.
La galería debería ser similar a la de la imagen siguiente. Seleccione el icono de pulgares hacia arriba de uno de los escritorios.
El icono debería cambiar a pulgar hacia arriba. Seleccione el icono de nuevo.
El icono debería volver a mostrar el icono de pulgares hacia arriba relleno. Seleccione el icono de nuevo.
Cierre la vista preliminar.
No se vaya de esta página.
Ejercicio 5: Filtrar escritorios
En este ejercicio, agregará un filtro a la galería de escritorios si el usuario selecciona una característica de la lista desplegable.
Tarea: Filtrar por características
En esta tarea, agregará un filtro para características.
Seleccione GalleryDesks.
Vaya a la barra de fórmulas y modifique la fórmula para Elementos. Esta fórmula filtrará los escritorios para mostrar solo los que tengan la característica seleccionada.
Filter(Desks,Location.Location = FilterLocation.Selected.Location,IsBlank(filterFeatures.Selected) || Desk in filterFeatures.Selected.Desks.Desk)Guarde los cambios (si es necesario).
Seleccione Reproducir para obtener una vista preliminar de la aplicación.
Observe las características del escritorio disponibles para el edificio seleccionado.
Seleccione una característica en la lista desplegable. Solo se deben mostrar los escritorios que tengan la característica seleccionada.
Seleccione diferentes edificios y características para asegurarse de que la aplicación se comporta como se espera.
Cierre la vista preliminar.
Cierre el diseñador de aplicaciones.