Habilitar uma experiência consistente em todas as sessões usando as funções LoadData e SaveData

O Microsoft Dataverse for Microsoft Teams oferece uma plataforma de dados interna e com pouco código ao Teams. Ela fornece armazenamento de dados relacionais, tipos de dados avançados, governança de nível empresarial e implantação de solução com um clique. O Dataverse for Teams permite que todos criem e implantem aplicativos com facilidade.

Embora existam inúmeras vantagens de usar o Power Apps no Teams, uma das maiores considerações sobre design é a capacidade de manter uma experiência consistente em todas as sessões.

Ao usar um aplicativo, se alternarmos uma guia no Teams a fim de ver a Wiki ou o Planner ou até mesmo conversar com alguém, os dados da sessão do aplicativo serão perdidos e teremos que iniciar a sessão do zero. Por exemplo, se estivermos no meio de uma inspeção usando o aplicativo Inspeções e alternarmos as guias mesmo por um momento, todos os dados capturados na inspeção serão perdidos e teremos que recapturar todas essas informações.

Neste artigo, aprenderemos como usar as Funções LoadData() e SaveData() para armazenar os dados da sessão no aplicativo a fim de evitar qualquer perda de trabalho devido à alternância de guias no Teams.

Assista a este vídeo para aprender como permitir uma experiência consistente nas sessões:

Pré-requisitos

Para concluir esta lição, precisaremos da capacidade de criar aplicativos no Teams que está disponível como parte da seleção de assinaturas do Microsoft 365.

Entrar no Teams

Entre no Teams usando a Área de Trabalho do Teams.

Criar uma equipe

Para criar uma equipe:

  1. Selecione a guia Equipes.
  2. Selecione Participar ou crie uma equipe no canto inferior esquerdo da tela.
  3. Selecione Criar uma equipe do zero.
  4. Selecione Público e dê um nome à equipe. Neste exemplo, usaríamos "Parceiros da MSFT".
  5. Selecione Criar.

A nova equipe é criada e listada na guia Equipes.

Criar uma equipe

Criar um Power App no Teams

Para criar um aplicativo Power Apps no Teams, precisamos abrir o Power Apps Studio no Teams, conforme mostrado abaixo.

Criar um Power App no Teams

  1. Selecione Power Apps na lista de aplicativos, fixe-o no painel esquerdo e selecione-o.

    Fixar o Power Apps no Teams

  2. Selecione Iniciar agora para criar o primeiro aplicativo.

  3. Selecione a equipe para a qual este aplicativo será criado — um ambiente do Power Apps é criado para essa equipe (há um ambiente do Power Apps por equipe).

  4. Enquanto o ambiente está sendo criado, feche a caixa de diálogo que diz Preparando tudo.

  5. Selecione a guia Criar na parte superior, e em poucos segundos o aplicativo criado deverá aparecer na lista.

  6. Abra o aplicativo e observe que ele é criado no layout do tablet/fator forma por padrão.

    Layout do tablet

  7. Digite um nome para o aplicativo, como Exemplo de sessão persistente e selecione Salvar.

    Salvar um Power App no Teams

    O aplicativo é criado com uma galeria.

    O aplicativo é criado com uma galeria

  8. Selecione Criar tabela para criar uma tabela.

  9. Insira Contas e selecione Criar.

    Adicionar um nome da tabela

  10. Adicione duas colunas — Telefone com tipo de dados de Telefone e Cidade com tipo de dados de Texto.

    Adicionar colunas

    Adicionar colunas Telefone e Cidade

  11. Adicione dados de exemplo às três colunas.

  12. Repita para adicionar pelo menos cinco registros.

  13. Selecione Fechar.

    Selecionar Fechar

    A tabela de contas é adicionada como uma tabela de dados

  14. Selecione Exibição de árvore > Selecione BrowseGallery1 > Selecione Contas como a fonte de dados.

    Selecionar Contas como a fonte de dados

Publicar o aplicativo no Teams

  1. Selecione Publicar no Teams.

    Selecionar o Power App no Teams

  2. Selecione Avançar

    Selecionar o botão Avançar

  3. Selecione + para adicionar o aplicativo ao canal "Geral".

    Adicionar aplicativo ao canal

    Selecionar o canal

  4. Acesse a equipe Exemplo de sessão persistente e observe o aplicativo Exemplo de sessão persistente que aparece na parte superior como uma guia.

    Navegar até o Teams

Testando o problema

  1. Abra o aplicativo Exemplo de sessão persistente da equipe Exemplo de sessão persistente.

    Abrir o aplicativo

  2. Selecione Novo Registro para criar uma nova conta no aplicativo.

  3. Inserir o nome e o número do telefone

  4. Antes de você inserir Cidade e salvar o registro, alterne para uma guia diferente (como Arquivos ou Wiki na parte superior ou uma equipe diferente) e, em seguida, volte para o aplicativo.

  5. Observe que os dados inseridos nas duas colunas não estão mais disponíveis na tela e foram perdidos

    Testando o problema

Solução: use as funções SaveData() e LoadData()

Para resolver o problema acima, usaremos as Funções LoadData() e SaveData(). Criaremos uma coleção para os dados inseridos em um formulário à medida que os dados forem inseridos e continuaremos salvando os dados na coleção até que o registro seja confirmado ou salvo. Dessa forma, se o registro não tiver sido salvo e tivermos que sair da tela por algum motivo, a coleção terá os dados salvos, que serão carregados assim que voltarmos ao aplicativo. Também limparemos a coleção assim que o registro for salvo para que a coleção esteja pronta para capturar novos dados quando o próximo novo registro estiver sendo criado.

  1. Comece certificando-se de que as alterações que estamos aplicando são aplicáveis apenas no caso de um novo registro. Portanto, estamos atualizando a variável newMode que será usada como uma condição no formulário de edição para descobrir quais dados precisam ser exibidos. Selecione Novo recorde e adicione a seguinte fórmula na propriedade OnSelect do botão:

    NewForm(EditForm1);
    UpdateContext({newMode: true})
    

    Fórmula OnSelect

  2. A seguir, adicionaremos os dados dos controles de entrada individuais a uma coleção e, em seguida, salvaremos os dados em um arquivo local dessa coleção. Selecione a caixa de entrada de texto — em nosso exemplo é o "DataCardValue1" do "Name_DataCard1" em "EditForm1" para o campo Nome — insira a seguinte fórmula na propriedade OnChange do campo de entrada:

    Collect(
        colAccount,    
        { Column:"Name",Value:Self.Value}
    );
    SaveData(colAccount,"colAccount").
    

    Com essa mudança, estamos adicionando os dados a um cache local para que, se o usuário sair do aplicativo, seus dados não sejam perdidos.

    Fazer uma coleção

    Da mesma forma, insira o seguinte código na propriedade OnChange para Telefone (DataCardValue2):

    Collect(colAccount, {Column:"Phone",Value:Self.Value});
    SaveData(colAccount,"colAccount");
    

    Adicione o seguinte código na propriedade OnChange para Cidade (DataCardValue3):

    Collect(colAccount {Column:"City", Value:Self.Value});
    SaveData(colAccount, "colAccount");
    
  3. Agora, vamos atualizar o aplicativo OnStart para que, se houver dados salvos na coleção, eles sejam carregados no início do aplicativo.

    Acesse a propriedade Aplicativo > OnStart e adicione a seguinte fórmula:

    LoadData(colAccount,"colAccount", true)
    

    Aplicativo OnStart

  4. Em seguida, precisamos atualizar a propriedade Padrão dos campos de dados para que, quando a página for carregada quando voltarmos ao aplicativo, se houver dados na coleção, ela mostre os dados da coleção por padrão.

    Selecione o campo DataCard e atualize a propriedade Padrão do cartão de dados com a fórmula a seguir para os campos listados.

    No campo Nome, insira Name_DataCard1:

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "Name")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "Name")
        ).Value,
        If(newMode, Blank(), ThisItem.Name)
    )
    

    Atualizar propriedade padrão

    Da mesma forma, insira a fórmula a seguir na fórmula de propriedade Padrão para Telefone (Phone_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column ="Phone")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "Phone")
        ).Value,
        If(newMode, Blank(), ThisItem.Phone)
    )
    

    Use a fórmula a seguir para Cidade (City_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "City")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "City")
        ).Value,
        If(newMode,Blank(), ThisItem.City)
    )
    
  5. Agora, precisamos limpar a coleção em dois cenários:

    1. Quando o usuário envia o formulário e as alterações são salvas.
    2. Quando o usuário seleciona o botão Cancelar para cancelar as alterações.

    Use a fórmula a seguir na propriedade OnSelect do botão Enviar.

    SubmitForm(EditForm1);
    UpdateContext({editMode: false, newMode: false});
    Clear(colAccount);
    SaveData(colAccount, "colAccount");
    

    Enviar OnSelect

    Selecione o botão Cancelar e insira a seguinte fórmula:

    ResetForm(EditForm1);
    UpdateContext({editMode: false, newMode: false});
    Clear(colAccount);
    SaveData(colAccount, "colAccount");
    

    Cancelar fórmula

  6. Publique os aplicativos depois de fazer todas as alterações acima, selecionando Publicar no Teams.

Testar o aplicativo novamente

  1. Acesse a equipe e execute o aplicativo.

  2. Selecione o registro + Novo e adicione o nome e os detalhes do telefone para o novo registro.

  3. Selecione outra guia para sair do aplicativo.

  4. Volte ao aplicativo, ele mostra detalhes da primeira conta.

  5. Agora, quando selecionamos + Novo novamente, veremos os detalhes de Nome e Telefone já preenchidos nesses campos de entrada de texto. Podemos continuar a adição da conta que estávamos adicionando antes de sairmos do aplicativo pela guia.

    Testar o aplicativo novamente

Como usamos SaveData e LoadData no aplicativo Inspeção

No aplicativo de exemplo Inspeção, usamos dados de carga e salvamos dados no formulário de inspeção — se um usuário está no meio de uma inspeção e sai dos aplicativos do Teams (como enviar uma mensagem para alguém), não queremos que ele perca seu lugar na inspeção. Quando ele retorna à guia do aplicativo no Teams, o aplicativo oferece a opção de continuar a inspeção em andamento.

Considerações

No Dataverse for Teams, existem alguns limites para os recursos SaveData() e LoadData().

  • Limite de 1 MB no Teams Desktop.
  • Não funciona em um navegador.
  • Os aplicativos no dispositivo móvel são limitados pela quantidade de armazenamento local disponível para o aplicativo.

Consulte também

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).