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, esses 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 compartilhamento de mesa, criou desafios para o suporte e licenciamento de TI. Como resultado, a Contoso criou recentemente uma solução Microsoft Power Platform que permitirá que os funcionários vejam quais mesas estão disponíveis e reserve 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 você 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, 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, depois, abra a solução Compartilhamento de Mesa da Contoso que você importou.
Selecione Fluxos da nuvem e clique para abrir o fluxo Carregar Dados de Exemplo de Compartilhamento de Mesa.
Selecione Executar.
Selecione Executar fluxo.
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.
Vá para o Power Apps Maker Portal e selecione o ambiente que você está usando neste laboratório.
Selecione Aplicativos e clique para iniciar o aplicativo Hot Desking Manager.
Selecione Mesas e verifique se você tem dados de exemplo.
Selecione Locais e verifique se você tem dados de exemplo.
Selecione Recursos de Mesas e verifique se você tem dados de exemplo.
Selecione Locais, escolha três locais e clique em Editar.
No campo Contato Principal, selecione o usuário e, depois, Alterar.
Feche o aplicativo Hot Desking Manager.
Verifique se você ainda tem Aplicativos selecionados, selecione o aplicativo Hot Desking e, depois, Editar. O aplicativo deve ser aberto no Studio.
> [!div class="mx-imgBorder"] > [![Screenshot of the Edit button highlighted and the Hot Desking application selected.](../media/edit-application.png)](../media/edit-application.png#lightbox)
Selecione HomeScreen e, depois, Reproduzir.
Selecione 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 versão preliminar.
Expanda a lista suspensa ReserveDeskScreen, expanda Gallery3 e selecione Button1.
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.
Procure e selecione a tabela Mesa.
Selecione a opção Relacionamentos, selecione + Novo relacionamento e Muitos para muitos.
Selecione Usuário para (Muitas) Tabelas Relacionadas e, depois, Concluído.
Selecione Salvar tabela.
Selecione Soluções e, depois, Publicar todas as personalizações.
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 gerente de produtos da Contoso.
Vá para o Power Apps Maker Portal e selecione o ambiente que você está usando neste laboratório.
Selecione Aplicativos, escolha o aplicativo Hot Desking e, depois, 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.Name
Redimensione 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.Phone
Redimensione 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 Arquivo > Salvar.
Selecione o botão Voltar.
Não saia desta página.
Exercício 4: Adicionar uma mesa favorita
Neste exercício, você adicionará um ícone que permitirá que os usuários selecionem mesas favoritas. Você também adicionará um rótulo que mostrará 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 does encounter [delegation](/power-apps/maker/canvas-apps/delegation-overview/?azure-portal=true) challenges, if you have a large amount 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.
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 Mesa e Recursos de Mesa.
Concat(ThisItem.'Desk Features', Name, " , " )
Redimensione e reposicione o rótulo para se acomodar melhor no espaço.
Selecione o ícone Salvar.
Selecione o botão Voltar.
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 adicione a fórmula a seguir à fórmula de Itens. Essa fórmula filtrará as mesas para mostrar apenas as que têm o recurso selecionado. Não se esqueça de incluir a vírgula.
,IsBlank(filterFeatures.Selected) || Desk in filterFeatures.Selected.Desks.Desk
Selecione Arquivo > Salvar.
Selecione o botão Voltar.
Selecione Reproduzir.
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.