Funções SaveData, LoadData e ClearData no Power Apps

Guarda e atualiza uma coleção do armazenamento do host da aplicação.

Nota

Estas funções podem agora ser usadas quando se reproduz uma aplicação num browser web como uma funcionalidade experimental. Esta funcionalidade é desativada por predefinição. Para ativar, navegue para Definições > Próximas funcionalidades > Experimental > Ativou SaveData, LoadData, ClearData no leitor web. e ligar o interruptor. Para submeter comentários sobre esta funcionalidade experimental, aceda ao fórum da comunidade Power Apps.

Descrição

A função SaveData armazena uma coleção para utilização posterior com um nome.

A função LoadData carrega novamente através do nome uma coleção guardada anteriormente com a função SaveData. Não pode utilizar esta função para carregar uma coleção a partir de outra origem.

A função ClearData limpa o armazenamento com um nome específico ou limpa todo o armazenamento associado à aplicação se não for fornecido nenhum nome.

Nota

  • O nome partilhado entre SaveData, LoadData e ClearData é uma chave, não um nome de ficheiro. Não é necessário ser complexo, uma vez que os nomes são exclusivos de cada aplicação e não existe nenhum perigo de conflito de nomes. O nome não pode conter nenhum destes carateres: *".?:\<>|/.
  • O SaveData está limitado a 1 MB de dados para executar o Power Apps no Teams e num browser da web. Não há limite fixo para Power Apps num leitor móvel, mas existem limites práticos discutidos abaixo.
  • Não utilize SaveData para armazenar dados confidenciais na Web, uma vez que estes serão armazenados em texto simples.

Utilize estas funções para melhorar o desempenho da iniciação de aplicações:

  • Colocar em cache dados na fórmula App.OnStart numa primeira execução.
  • O recarregamento da cache local em execuções seguintes.

Também pode utilizar estas funções para adicionar capacidades offline simples à sua aplicação.

Não é possível utilizar estas funções dentro de um browser quando:

  • Criar a aplicação no Power Apps Studio.

Para testar a sua aplicação, execute-a no Power Apps Mobile num iPhone ou dispositivo Android.

Estas funções estão limitadas pela quantidade de memória da aplicação disponível, uma vez que operam numa coleção de memória. A memória disponível pode variar consoante fatores como:

  • O dispositivo e o sistema operativo.
  • A memória utilizada pelo leitor do Power Apps.
  • Complexidade da aplicação com ecrãs e controlos.

Teste a sua aplicação com cenários esperados no tipo de dispositivos que espera que a aplicação execute ao armazenar dados grandes. Espera ter entre 30 MB e 70 MB de memória disponível em geral.

Estas funções dependem da coleção ser definida implicitamente com Collect ou ClearCollect. Não é necessário chamar Collect ou ClearCollect para carregar dados na coleção para a definição da mesma. Trata-se de um incidente comum quando utiliza LoadData após um SaveData anterior. Tudo o que é necessário é a presença destas funções numa fórmula para definir implicitamente a estrutura da coleção. Para mais informações, consulte criar e remover variáveis.

Os dados carregados serão acrescentados à coleção. Utilize a função Clear antes de chamar LoadData se pretender começar com uma coleção vazia.

As instalações da sandbox da aplicação incorporada do dispositivo são utilizadas para isolar dados guardados de outras aplicações.

O dispositivo também poderá encriptar os dados ou pode utilizar uma ferramenta de gestão de dispositivos móveis, tal como o Microsoft Intune. Os dados armazenados quando reproduzem uma aplicação num browser da web não estão encriptados.

Sintaxe

SaveData( Collection, Name )
LoadData( Collection, Name [, IgnoreNonexistentFile ])

  • Collection – Obrigatório. Coleção a armazenar ou carregar.
  • Name – Obrigatório. Nome do armazenamento. O nome tem de ser o mesmo para guardar e carregar o mesmo conjunto de dados. O espaço de nomes não é partilhado com outras aplicações ou utilizadores. Os nomes não podem conter nenhum destes carateres: *".?:\<>|/.
  • IgnoreNonexistentFile – Opcional. Um valor Booleano que indica o que deve ser feito se o ficheiro ainda não existir. Utilize false (predefinido) para devolver um erro e true para eliminar o erro.

ClearData( [Nome] )

  • Nome – Opcional. Nome do armazenamento previamente guardado com SaveData. Se Nome não for fornecido, todo o armazenamento associado à aplicação é limpo.

Exemplos

Fórmula Descrição Resultado
SaveData( LocalCache, "MyCache" ) Guarde a colecção do LocalCache no dispositivo do utilizador com o nome "MyCache", adequada para o LoadData para obter mais tarde. Os dados são guardados para o host da aplicação sob o nome "MyCache".
LoadData( LocalCache, "MyCache" ) Carrega a coleção LocalCache a partir do dispositivo do utilizador sob o nome "MyCache", anteriormente armazenado com uma chamada para SaveData. Os dados são carregados do host da aplicação sob o nome "MyCache".
ClearData( "MyCache" ) Limpa o armazenamento com o nome "MyCache". Todos os dados armazenados com este nome deixarão de estar disponíveis através de LoadData. Os dados são removidos do host da aplicação sob o nome "MyCache".
ClearData() Limpe todo o armazenamento associado a esta aplicação. Os dados armazenados por outras aplicações não são afetados. Todos os dados são removidos do host da aplicação.

Exemplo offline simples

O exemplo simples seguinte captura e armazena os nomes e as imagens de itens diários enquanto offline. Armazena as informações no armazenamento local do dispositivo para utilização posterior. Isto permite que a aplicação seja fechada ou que o dispositivo seja reiniciado sem perder dados.

Nota

Este exemplo usa um controlo camera para capturar imagens. Uma vez que o SaveData está limitado a 1 MB de dados quando está a executar no Teams ou num browser da web, este exemplo não funcionará com mais do que algumas imagens. Além disso, dependendo da câmara, pode não funcionar com uma única imagem. Utilize um dispositivo para trabalhar através deste exemplo completo, ou remova o controlo da câmara e a parte da imagem deste exemplo para executar no Teams ou num browser da web.

  1. Criar uma aplicação de tela em branco com um esquema de tablet. Para mais detalhes, leia criar uma aplicação a partir de um modelo e selecione Esquema de tablet em Aplicação em branco.

  2. Adicione um controlo de Text input e um controlo de Camera e organize-os conforme mostrado abaixo:

    Um controlo de entrada de texto e de câmara adicionados a um ecrã em branco.

  3. Adicionar um controlo de Button.

  4. Faça duplo clique no controlo button para alterar o texto do botão para Adicionar Item (ou modificar a propriedade de Text).

  5. Defina a propriedade OnSelect do controlo button como esta fórmula que irá adicionar um item à nossa coleção:

    Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
    

    Um controlo button adicionado com o texto "Adicionar item" e a propriedade OnSelect definida

  6. Adicionar outro controlo de Button.

  7. Faça duplo clique no controlo button para alterar o texto do botão para Guardar Dados (ou modificar a propriedade de Text).

  8. Defina a propriedade OnSelect do controlo button como esta fórmula para guardar a nossa coleção no dispositivo local:

    SaveData( MyItems, "LocalSavedItems" )
    

    Um controlo button adicionado com o texto "Guardar Dados" e a propriedade OnSelect definida

    É tentador testar o botão, uma vez que não afeta nada. No entanto, só verá um pois está a criar num browser. Guarde primeiro a aplicação e abra-a num dispositivo antes de seguir os passos seguintes para testar esta fórmula:

  9. Adicionar um terceiro controlo de Button.

  10. Faça duplo clique no controlo button para alterar o texto do botão para Carregar Dados (ou modificar a propriedade de Text).

  11. Defina a propriedade OnSelect do controlo button como esta fórmula para carregar a nossa coleção do dispositivo local:

    LoadData( MyItems, "LocalSavedItems" )
    

    Um controlo button adicionado com o texto "Carregar Dados" e a propriedade OnSelect definida

  12. Adicionar um controlo de Gallery com um esquema vertical que inclua uma imagem e áreas de texto:

    Seleção de variedade de galerias, "Vertical" selecionado com áreas de imagem e texto

  13. Quando lhe for pedido, selecione a colecção MyItems como a origem de dados para esta galeria. Isto irá definir a propriedade Items do controlo de Gallery:

    Galeria seleção de origem de dados. O controlo image no modelo de galeria deve predefinir a sua propriedade de Image para ThisItem.Picture e os controlos da etiqueta devem ambos predefinirem as suas propriedades de Text para ThisItem.Item. Verifique estas fórmulas se depois de adicionar itens nos passos seguintes não visualizar nada na galeria.

  14. Posicione o controlo à direita dos outros controlos:

    Galeria reposicionada à direita do ecrã.

  15. Guarde a sua aplicação. Se for a primeira vez que tiver sido guardada, não é necessário publicá-la. Se não for a primeira vez, publique a aplicação depois de guardar.

  16. Abra a sua aplicação num dispositivo, como um telemóvel ou tablet. SaveData e LoadData não podem ser utilizados no Studio ou num browser. Atualize a lista de aplicações se não visualizar a sua aplicação de imediato, a aplicação poderá demorar alguns segundos para ser apresentada no seu dispositivo. Terminar sessão e iniciá-la novamente na sua conta também pode ajudar.

    App a funcionar sem itens adicionados. Uma vez descarregada a sua aplicação, pode desligar-se da rede e executar a aplicação offline.

  17. Introduza o nome e tire uma fotografia de um item.

  18. Selecione o botão Adicionar Item. Repita a adição de itens algumas vezes para carregar a sua coleção.

    Aplicação em execução com três itens adicionados.

  19. Selecione o botão Guardar Dados. Isto irá guardar os dados da sua coleção no dispositivo local.

  20. Feche a aplicação. A sua coleção na memória será perdida, incluindo todos os nomes de item e imagens, mas continuará a existir no armazenamento do dispositivo.

  21. Inicie a aplicação novamente. A coleção na memória será mostrada novamente como vazia na galeria.

    Aplicação em execução novamente sem itens adicionados.

  22. Selecione o botão Carregar Dados. A coleção será repopulada com os dados armazenados no dispositivo e os seus itens ficarão novamente na galeria. A coleção estava vazia antes deste botão chamar a função LoadData; não havia necessidade de chamar Collect ou ClearCollect antes de carregar os dados do armazenamento.

    Aplicação em execução com três itens restaurados depois de chamar a função LoadData.

  23. Selecione novamente o botão Carregar Dados. Os dados armazenados serão acrescentados no final da coleção e uma barra de deslocamento aparecerá na galeria. Se pretender substituir em vez de acrescentar, utilize primeiro a função Clear para limpar a coleção antes de chamar a função LoadData.

    Aplicação em execução com seis itens restaurados depois de chamar a função LoadData duas vezes.

Exemplo offline mais avançado

Para obter um exemplo detalhado, consulte o artigo sobre capacidades offline simples.

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).