Exercício: trabalhar com dados relacionais do Dataverse

Concluído

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.

  1. Será necessário baixar o arquivo zip para realizar este exercício. Selecione baixar quando o link abrir.

  2. Navegue até o Power Apps Maker Portal e selecione o ambiente que você deseja usar neste laboratório.

  3. Selecione Soluções > Importar Solução.

    Captura de tela do botão Importar solução.

  4. Selecione Procurar.

  5. Selecione a solução ContosoHotDesking_1_0_0_0.zip e Abrir.

  6. Selecione Avançar.

  7. Selecione Avançar novamente.

  8. Na lista suspensa Selecionar uma conexão, selecione + Nova conexão.

    Captura de tela do botão Nova conexão na lista suspensa Selecionar uma conexão.

  9. Selecione Criar.

  10. Forneça as credenciais.

  11. Feche a janela ou a guia do navegador de conexões.

  12. Selecione Atualizar.

  13. 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.

  1. Selecione Soluções e, depois, abra a solução Compartilhamento de Mesa da Contoso que você importou.

  2. Selecione Fluxos da nuvem e clique para abrir o fluxo Carregar Dados de Exemplo de Compartilhamento de Mesa.

    Captura de tela do botão Carregar Fluxo de Dados de Exemplo de Compartilhamento de Mesa.

  3. Selecione Executar.

  4. Selecione Executar fluxo.

  5. 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.

    Captura de tela do botão Atualizar.

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.

  1. Vá para o Power Apps Maker Portal e selecione o ambiente que você está usando neste laboratório.

  2. Selecione Aplicativos e clique para iniciar o aplicativo Hot Desking Manager.

    Captura de tela do link do aplicativo Hot Desking Manager.

  3. Selecione Mesas e verifique se você tem dados de exemplo.

  4. Selecione Locais e verifique se você tem dados de exemplo.

  5. Selecione Recursos de Mesas e verifique se você tem dados de exemplo.

  6. Selecione Locais, escolha três locais e clique em Editar.

    Captura de tela de três locais selecionados na lista suspensa Locais Ativos, com o botão Editar realçado.

  7. No campo Contato Principal, selecione o usuário e, depois, Alterar.

    Captura de tela do campo Contato Principal, com o usuário selecionado.

  8. Feche o aplicativo Hot Desking Manager.

  9. 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)
    
  10. Selecione HomeScreen e, depois, Reproduzir.

  11. Selecione Nova Reserva.

  12. Selecione Prédio 1, Escritório Fechado e Mesa nº 1.

    Captura de tela do formulário de reserva do Contoso Hot Desking.

  13. Selecione uma data futura e, depois, Reservar para 9:00.

  14. Selecione Nova Reserva novamente.

  15. Selecione Prédio 2, Sala do Teams e Mesa nº 2.

  16. Selecione uma data futura e, depois, Reservar para 13:00.

  17. Adicione algumas outras reservas com combinações diferentes.

  18. Você deve ter pelo menos quatro reservas. Feche a versão preliminar.

    Captura de tela do botão para fechar a versão preliminar do aplicativo de tela.

  19. Expanda a lista suspensa ReserveDeskScreen, expanda Gallery3 e selecione Button1.

    Captura da tela do controle Button1 na lista suspensa ReserveDeskScreen.

  20. 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.

    Captura de tela do botão OnSelect e sua fórmula.

  21. Revise outras fórmulas no aplicativo para se familiarizar com o funcionamento do processo.

  22. Selecione o botão Voltar ao concluir a revisão das fórmulas.

    Captura de tela do botão Voltar para retornar a aplicativos.

  23. 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.

  1. Selecione Tabelas.

  2. Procure e selecione a tabela Mesa.

    Captura de tela da tabela Mesa.

  3. Selecione a opção Relacionamentos, selecione + Novo relacionamento e Muitos para muitos.

    Captura de tela do relacionamento Muitos para muitos selecionado.

  4. Selecione Usuário para (Muitas) Tabelas Relacionadas e, depois, Concluído.

  5. Selecione Salvar tabela.

  6. Selecione Soluções e, depois, Publicar todas as personalizações.

  7. 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.

  1. Vá para o Power Apps Maker Portal e selecione o ambiente que você está usando neste laboratório.

  2. Selecione Aplicativos, escolha o aplicativo Hot Desking e, depois, Editar.

    Captura de tela do botão Editar do aplicativo Hot Desking.

  3. Expanda HomeScreen e selecione Gallery5.

  4. 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)'

    Captura de tela da fórmula de itens.

  5. Selecione o ícone Editar da galeria.

    Captura de tela do ícone Editar para editar a galeria.

  6. Vá para o menu suspenso Inserir e selecione Rótulo de texto.

  7. 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

  8. Redimensione e reposicione o rótulo.

    Captura de tela do controle de rótulo para redimensionar e reposicionar.

  9. No modo de edição, selecione para adicionar outro Rótulo.

  10. 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

  11. Redimensione e reposicione o rótulo.

    Captura de tela da posição do controle de rótulo.

  12. No modo de edição, selecione Rótulo mais uma vez.

  13. 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')

  14. Redimensione e reposicione o rótulo.

    A galeria de reserva agora deve ser semelhante à imagem a seguir.

    Captura de tela da galeria de reserva.

  15. Selecione Arquivo > Salvar.

  16. Selecione o botão Voltar.

  17. 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.

  1. Expanda FindDeskScreen e selecione GalleryDesks.

  2. Selecione o ícone Editar da galeria.

    Captura de tela do botão para edição da galeria.

  3. 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.

  4. 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.
    
  5. 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))

  6. Reposicione o ícone na galeria, conforme mostrado na imagem a seguir.

    Captura de tela da posição do ícone.

  7. Verifique se você ainda está no modo de edição da galeria. Vá para a guia Inserir e selecione Rótulo.

  8. 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, " , " )

  9. Redimensione e reposicione o rótulo para se acomodar melhor no espaço.

  10. Selecione o ícone Salvar.

  11. Selecione o botão Voltar.

  12. Selecione Reproduzir para visualizar o aplicativo.

  13. A galeria deve ser semelhante à imagem a seguir. Selecione o ícone polegar para cima de uma das mesas.

    Captura de tela do ícone polegar para cima da mesa.

  14. O ícone deve ser alterado para polegar para cima. Selecione o ícone novamente.

    Captura de tela do ícone polegar para cima da mesa alterado.

  15. O ícone deve voltar a mostrar o ícone polegar para cima preenchido. Selecione o ícone novamente.

  16. Feche a versão preliminar.

  17. 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.

  1. Selecione GalleryDesks.

  2. 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

    Captura de tela da área de edição da fórmula.

  3. Selecione Arquivo > Salvar.

  4. Selecione o botão Voltar.

  5. Selecione Reproduzir.

  6. Anote os recursos de mesa que estão disponíveis para o prédio selecionado.

    Captura de tela de recursos da mesa.

  7. Selecione um recurso na lista suspensa. Somente as mesas com o recurso selecionado devem ser exibidas.

    Captura de tela das mesas filtradas.

  8. Selecione prédios e recursos diferentes para ter certeza de que o aplicativo se comporta conforme o esperado.

  9. Feche a versão preliminar.

  10. Feche o designer de aplicativo.