Funções SaveData e LoadData no Power Apps

Guarda e carrega novamente uma coleção de um dispositivo local.

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.

Nota

O nome partilhado entre SaveData e LoadData é uma chave, e 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: *".?:\<>|/.

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.
  • Executar a aplicação no leitor Web.

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.

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.

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 no dispositivo local.
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 no dispositivo local.

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.

Tem de ter um dispositivo para trabalhar com este exemplo, uma vez que utiliza as funções LoadData e SaveData que não operam quando num browser.

  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 Entrada de texto e um controlo de Câmara 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 Botão.

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

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

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

    Um controlo de botão adicionado com o texto "Adicionar item" e a propriedade OnSelect definida

  6. Adicionar outro controlo de Botão.

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

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

    SaveData( MyItems, "LocalSavedItems" )
    

    Um controlo de botão 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 Botão.

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

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

    LoadData( MyItems, "LocalSavedItems" )
    

    Um controlo de botão adicionado com o texto "Carregar Dados" e a propriedade OnSelect definida

  12. Adicionar um controlo de Galeria 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 Galeria:

    Seleção de galeria de origem de dados O controlo de imagem no modelo de galeria deve predefinir a propriedade de Imagem como ThisItem.Picture e os controlos de etiqueta ambos devem predefinir as respetivas propriedades de Texto como 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.

    Aplicação em execução sem itens adicionados Depois da sua aplicação ser transferida, 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).