Exercício: trabalhar com dados relacionais do Dataverse
A Contoso, como muitas empresas, tem vários locais e permite que os funcionários trabalhem em casa. Ocasionalmente, os funcionários precisam entrar no escritório e usar uma mesa durante a visita. Antes, a Contoso orientava os funcionários a andar pelo escritório na chegada para encontrar uma mesa disponível. A empresa já descobriu que esse tipo de sistema de espaço de trabalho compartilhado, ou hot desking, criou desafios para o suporte e licenciamento de TI. Como resultado, a Contoso criou recentemente uma solução do Microsoft Power Platform que permite que os funcionários vejam quais mesas estão disponíveis e reservem uma com antecedência.
Neste exercício, você aprimorará o aplicativo de tela do Power Apps.
Objetivos
O objetivo deste exercício é aprender a trabalhar com os seguintes relacionamentos:
Um para muitos e muitos para um
Muitos para muitos
Pré-requisito
Para concluir este exercício, você precisará de um ambiente com o Microsoft Dataverse.
Exercício 1: Importar uma solução
Neste exercício, você importará uma solução inicial para o ambiente de teste e carregará os dados de exemplo usando um fluxo da nuvem do Microsoft Power Automate. Essa solução contém cinco tabelas, um aplicativo de tela, um aplicativo baseado em modelo e um fluxo da nuvem.
Tarefa 1: Importar a solução inicial
Nesta tarefa, você importará uma solução para o seu ambiente.
Será necessário baixar o arquivo zip para realizar este exercício. Selecione baixar quando o link abrir.
Navegue até o Power Apps Maker Portal e selecione o ambiente que deseja usar neste laboratório.
Selecione Soluções > Importar Solução.
Selecione Procurar.
Selecione a solução ContosoHotDesking_1_0_0_0.zip e Abrir.
Selecione Avançar.
Selecione Avançar novamente.
Na lista suspensa Selecionar uma conexão, se suas credenciais já tiverem sido fornecidas, selecione Importar e pule para a Tarefa 2. Caso contrário, selecione + Nova conexão.
Selecione Criar.
Forneça as credenciais.
Feche a janela ou a guia do navegador de conexões.
Selecione Atualizar.
Selecione Importar e aguarde a conclusão da importação da solução.
Tarefa 2: Carregar dados de exemplo
Nesta tarefa, você executará um fluxo da nuvem que criará dados de exemplo.
Selecione Soluções e abra a solução Compartilhamento de Mesa da Contoso que você importou.
Selecione Fluxos da nuvem e clique para abrir o fluxo Load Sample Hot Desk Data.
Quando o fluxo abrir, selecione Executar na barra de comandos.
Selecione Executar fluxo na parte inferior da caixa de diálogo.
Selecione Concluído e aguarde a conclusão da execução do fluxo. Selecione o botão Atualizar para exibir o status de execução do fluxo. Um status Bem-sucedido deve ser exibido quando a execução do fluxo é concluída.
Tarefa 3: Executar aplicativos
Nesta tarefa, você executará os aplicativos Hot Desking Manager e Hot Desking para se familiarizar com eles. Em seguida, você concluirá a configuração dos dados.
Retorne à sua solução ou acesse o Power Apps Maker Portal e selecione o ambiente e a solução que está usando para este laboratório.
Selecione Aplicativos e o aplicativo Hot Desking Manager para inicializá-lo.
Selecione Exibição das mesas e verifique se você tem dados de exemplo.
Selecione Exibição de locais e verifique se você tem dados de exemplo.
Selecione Exibição de Recursos de Mesas e verifique se você tem dados de exemplo.
Selecione Locais, escolha três locais e clique em Editar.
No campo Primary Contact, selecione o usuário e Salvar.
Feche o aplicativo Hot Desking Manager selecionando Voltar.
Verifique se Aplicativos continua selecionado. Selecione o aplicativo Hot Desking e, em seguida, Editar. O aplicativo deve abrir em make.powerapps.com.
Selecione HomeScreen e Reproduzir.
Selecione o botão Nova Reserva.
Selecione Prédio 1, Escritório Fechado e Mesa nº 1.
Selecione uma data futura e, depois, Reservar para 9:00.
Selecione Nova Reserva novamente.
Selecione Prédio 2, Sala do Teams e Mesa nº 2.
Selecione uma data futura e, depois, Reservar para 13:00.
Adicione algumas outras reservas com combinações diferentes.
Você deve ter pelo menos quatro reservas. Feche a visualização selecionando o X na parte superior direita.
Expanda a lista suspensa ReserveDeskScreen, expanda Gallery3 e selecione Button1.
Vá até a barra de fórmulas e revise a fórmula de OnSelect. Quando o usuário seleciona a opção Reservar, uma função Patch() é usada para criar uma linha Reserva. Essa nova linha tem relacionamentos com a mesa e o usuário. O relacionamento de usuário é definido com base em uma variável global estabelecida no aplicativo no início.
Revise outras fórmulas no aplicativo para se familiarizar com o funcionamento do processo.
Selecione o botão Voltar ao concluir a revisão das fórmulas.
Não saia desta página.
Exercício 2: Criar um relacionamento
Neste exercício, você criará um relacionamento para as mesas favoritas. Esse relacionamento será de muitos para muitos entre as tabelas Usuário e Mesa. Esse relacionamento permitirá que você implemente um recurso em que um usuário pode marcar uma mesa como favorita.
Tarefa: Criar um relacionamento
Nesta tarefa, você criará um relacionamento para as mesas favoritas.
Selecione Tabelas.
Selecionar a tabela Desk.
Selecione a opção Relacionamentos no painel Esquema. Selecione + Novo relacionamento e Muitos para muitos.
Encontre/selecione Usuário para (Muitas) Tabelas Relacionadas e selecione Concluído.
Selecione a seta Voltar no canto superior esquerdo.
Retorne à sua solução selecionando Objetos ou Visão geral, no menu do lado esquerdo, e selecione Publicar todas as personalizações na barra de comandos.
Aguarde a conclusão do processo de publicação.
Exercício 3: adicionar informações a uma exibição de reserva
Neste exercício, você alterará a galeria de reserva para mostrar reservas criadas pelo usuário atual, em vez de mostrar todas as reservas. Você também mostrará mais informações sobre a lista de reserva.
Tarefa: Editar o aplicativo
Nesta tarefa, você editará o aplicativo Contoso product manager.
Vá para o Power Apps Maker Portal e retorne ao ambiente e à solução que você está usando neste laboratório.
Selecione Aplicativos, escolha o aplicativo Hot Desking e abra-o no modo Editar.
Expanda HomeScreen e selecione Gallery5.
Vá para a barra de fórmulas e altere a fórmula Itens para a fórmula a seguir. Essa fórmula filtrará uma reserva associada ao usuário atual e usará o relacionamento um para muitos entre o usuário e a tabela de reserva.
LookUp(Users,'Primary Email'=currentUserEmail).'Reservations (contoso_Reservation_ReservedFor_SystemUser)'Selecione o ícone Editar da galeria.
Vá para o menu suspenso Inserir e selecione Rótulo de texto.
Depois, altere o valor de Texto para a fórmula a seguir. Essa fórmula usa o relacionamento um para muitos entre as tabelas de reserva e de mesa.
ThisItem.Desk.NameRedimensione e reposicione o rótulo.
No modo de edição, selecione para adicionar outro Rótulo.
Selecione o rótulo que você adicionou e defina o valor de Texto como a fórmula a seguir. A fórmula a seguir mostra que você está usando dois níveis de profundidade nos relacionamentos, começando pela reserva e usando a Mesa para obter a Localização.
ThisItem.Desk.Location.PhoneRedimensione e reposicione o rótulo.
No modo de edição, selecione Rótulo mais uma vez.
Selecione o rótulo que você adicionou e defina o valor de Texto como a fórmula a seguir.
If(IsBlank(ThisItem.Desk.Location.'Primary Contact'),"No Primary Contact",ThisItem.Desk.Location.'Primary Contact'.'Full Name')Redimensione e reposicione o rótulo.
A galeria de reserva agora deve ser semelhante à imagem a seguir.
Selecione Salvar.
Permaneça na tela de edição do aplicativo para o próximo exercício.
Exercício 4: adicionar uma mesa favorita
Neste exercício, você adicionará um ícone que permita que os usuários selecionem mesas favoritas. Você também adicionará um rótulo que mostre os recursos de mesa.
Tarefa: adicionar um favorito
Nesta tarefa, você adicionará uma mesa favorita e um rótulo para mostrar os recursos de mesa.
Expanda FindDeskScreen e selecione GalleryDesks.
Selecione o ícone Editar da galeria.
Vá para a guia Inserir, selecione Ícones e escolha um dos ícones. Você definirá o ícone específico na próxima etapa usando uma fórmula. Portanto, para essa etapa, não importa qual ícone você escolhe.
Selecione o ícone que você adicionou e altere o valor de Ícone para a fórmula a seguir. Essa fórmula mostrará o ícone polegar para cima preenchido se o usuário não tiver indicado essa mesa como favorita, ou mostrará o ícone polegar para cima se o usuário já tiver selecionado a mesa como favorita.
`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.Verifique se você ainda tem o ícone selecionado. Selecione OnSelect e cole a fórmula a seguir. Essa fórmula relaciona ou não relaciona esta mesa e o usuário conectado, dependendo se o usuário já adicionou a mesa como favorita.
If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Unrelate(ThisItem.Users, currentUser), Relate(ThisItem.Users, currentUser))Reposicione o ícone na galeria, conforme mostrado na imagem a seguir.
Verifique se você ainda está no modo de edição da galeria. Vá para a guia Inserir e selecione Rótulo de texto.
Selecione o rótulo que você adicionou e defina o valor de Texto como a fórmula a seguir. Essa fórmula concatenará os nomes de recursos de mesa e usará o relacionamento muitos para muitos entre as tabelas Desk e Desk Features.
Concat(ThisItem.'Desk Features', Name, " , " )Redimensione e reposicione o rótulo para se acomodar melhor no espaço.
Salve o aplicativo.
Selecione Reproduzir para visualizar o aplicativo.
A galeria deve ser semelhante à imagem a seguir. Selecione o ícone polegar para cima de uma das mesas.
O ícone deve ser alterado para polegar para cima. Selecione o ícone novamente.
O ícone deve voltar a mostrar o ícone polegar para cima preenchido. Selecione o ícone novamente.
Feche a versão preliminar.
Não saia desta página.
Exercício 5: Filtrar mesas
Neste exercício, você adicionará um filtro à galeria de mesas se o usuário selecionar um recurso da lista suspensa.
Tarefa: Filtrar recursos
Nesta tarefa, você adicionará um filtro para recursos.
Selecione GalleryDesks.
Vá para a barra de fórmulas e modifique sua fórmula para Itens. Essa fórmula filtra as mesas para mostrar apenas as que têm o recurso selecionado.
Filter(Desks,Location.Location = FilterLocation.Selected.Location,IsBlank(filterFeatures.Selected) || Desk in filterFeatures.Selected.Desks.Desk)Salve as alterações (se necessário).
Selecione Reproduzir para visualizar seu aplicativo.
Anote os recursos de mesa que estão disponíveis para o prédio selecionado.
Selecione um recurso na lista suspensa. Somente as mesas com o recurso selecionado devem ser exibidas.
Selecione prédios e recursos diferentes para ter certeza de que o aplicativo se comporta conforme o esperado.
Feche a versão preliminar.
Feche o designer de aplicativo.