Funcións SaveData, LoadData e ClearData

Aplícase a: aplicacións Canvas

Garda e recarga a colección desde o almacenamento do servidor da aplicación.

Nota

Estas funcións agora pódense usar ao reproducir unha aplicación nun navegador web como unha característica experimental. Esta función está desactivada por defecto. Para activala, vaia a Configuración>Próximas funcións>Experimental>Activáronse SaveData, LoadData e ClearData no reprodutor web." e active o interruptor. Para enviar comentarios sobre esta función experimental, vaia ao foro comunitario de Power Apps.

Descripción

A función SaveData almacena unha colección para o seu uso posterior baixo un nome.

A función LoadData recarga unha colección por nome que antes se gardou con SaveData. Non pode usar esta función para cargar unha colección desde outra fonte.

A función ClearData limpa o almacenamento cun nome específico ou borra todo o almacenamento asociado á aplicación se non se fornece ningún nome.

Nota

  • O nome compartido entre Gardar datos, LoadData e ClearData é unha clave, non un nome de ficheiro. Non é preciso que sexa complexo, xa que os nomes son exclusivos de cada aplicación e non hai perigo de conflitos por nomes. O nome non debe conter ningún destes caracteres: *".?:\<>|/.
  • SaveData está limitado a 1 MB de datos para Power Apps executándose en Teams e nun navegador web. Non hai límite fixo para Power Apps funcionando nun reprodutor móbil, pero hai límites prácticos que se comentan a continuación.
  • Non utilice SaveData para almacenar datos confidenciais na web xa que se almacenarán en texto simple.

Use estas funcións para mellorar o rendemento de inicio de aplicacións mediante:

  • Almacenamento na caché de datos coa fórmula App.OnStart nunha primeira execución.
  • Recarga da caché local nas próximas execucións.

Tamén pode usar estas funcións para engadir capacidades sinxelas sen conexión para a súa aplicación.

Non pode usar estas funcións dentro dun explorador ao:

  • Crear a aplicación en Power Apps Studio.

Para probar a súa aplicación, execútea en Power Apps Mobile nun dispositivo iPhone ou Android.

Estas funcións están limitadas pola cantidade de memoria dispoñible da aplicación xa que funcionan nunha colección na memoria. A memoria dispoñible pode variar dependendo de factores como:

  • O dispositivo e sistema operativo.
  • A memoria que o reprodutor de Power Apps usa.
  • A complexidade da aplicación con pantallas e controis.

Probe a súa aplicación con escenarios previstos sobre o tipo de dispositivos nos que espera que se execute a aplicación ao almacenar datos de gran tamaño. Espere ter xeralmente entre 30 MB e 70 MB de memoria dispoñible.

Estas funcións dependen da definición implícita da colección con Collect ou ClearCollect. Non é necesario chamar as funcións Collect ou ClearCollect para cargar datos na colección para definila. É un caso común cando se usa LoadData despois dunha función SaveData anterior. Só é necesaria a presenza destas funcións nunha fórmula para definir de forma implícita a estrutura da colección. Para obter máis información, consulte creación e eliminación de variables.

Os datos cargados xuntaranse na colección. Use a función Clear antes de chamar LoadData se quere comezar cunha colección baleira.

Seguranza de datos

Considera coidadosamente o illamento e o cifrado dos datos almacenados con SaveData e decide se é o adecuado para as túas necesidades, especialmente se os dispositivos son compartidos por varios usuarios.

Os xogadores illántanse os datos almacenados con SaveData Power Apps doutros Power Apps . Os datos gárdanse en función do ID de aplicación da aplicación, illando automaticamente o espazo de nome SaveData entre eles Power Apps.

O sistema operativo e o navegador encárganse de illar os datos entre Power Apps e outras aplicacións nun dispositivo e con sitios web. Por exemplo, o sistema operativo encárgase de illar os datos almacenados en Microsoft Outlook dos datos almacenados en Power Apps, e tamén de illar eses datos de sitios web como Bing.com ou PowerApps.com. As instalacións de sandbox das aplicacións integradas do sistema operativo utilízanse para SaveData almacenamento que normalmente non é accesible nin se oculta para o usuario.

Cando se utiliza a mesma aplicación, o sistema operativo e o navegador tamén se encargan de illar os datos entre os diferentes usuarios de nivel de sistema operativo. Por exemplo, se dous usuarios diferentes comparten un ordenador e usan dúas credenciais de inicio de sesión de Windows diferentes, o sistema operativo encárgase de illar os datos entre os dous usuarios de Windows.

Os datos poden illar ou non entre diferentes Power Apps usuarios se o usuario do sistema operativo é o mesmo. Non todos os Power Apps xogadores tratan isto do mesmo xeito. Por exemplo, mentres inicia sesión como o mesmo usuario de Windows, no Power Apps reprodutor, o usuario pecha sesión en Power Apps e inicia sesión como outro Power Apps usuario. Os datos almacenados nunha aplicación antes do cambio de Power Apps usuario poden ser accesibles para o segundo Power Apps usuario dentro da mesma aplicación. Tamén se poden eliminar os datos e é posible que o primeiro Power Apps usuario xa non poida acceder a eles. O comportamento varía entre Power Apps xogadores.

O sistema operativo tamén pode cifrar os datos ou pode utilizar unha ferramenta de xestión de dispositivos móbiles como Microsoft Intune. Os datos almacenados ao reproducir unha aplicación nun navegador web non están cifrados.

Sintaxe

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

  • Collection – Obrigatorio. Colección que se vai almacenar ou cargar.
  • Nome - Obrigatorio. Nome do almacenamento. O nome debe ser o mesmo para gardar e cargar o mesmo conxunto de datos. O espazo de nomes non se comparte con outras aplicacións. Os nomes non deben conter ningún destes caracteres: *".?:\<>|/.
  • IgnoreNonexistentFile - Opcional. Un valor booleano que indica que facer se o ficheiro non existe aínda. Use false (valor predeterminado) para devolver un erro e true para suprimir o erro.

ClearData( [Name] )

  • Nome - Opcional. Nome do almacenamento gardado previamente con SaveData. Se o Nome non se proporciona, bórrase todo o almacenamento asociado á aplicación.

Exemplos

Fórmula Descripción Resultado
SaveData( LocalCache, "MyCache" ) Garda a colección LocalCache no dispositivo do usuario co nome "MyCache", axeitado para que LoadData o recupere despois. Os datos gárdanse no servidor da aplicación co nome "MyCache".
LoadData( LocalCache, "MyCache" ) Carga a colección LocalCache desde o dispositivo do usuario co nome "MyCache", previamente almacenado cunha chamada a SaveData. Os datos cárganse desde o servidor da aplicación co nome "MyCache".
ClearData( "MyCache" ) Borra o almacenamento co nome "MyCache". Os datos almacenados con este nome xa non estarán dispoñibles a través de LoadData. Os datos elimínanse do servidor da aplicación co nome "MyCache".
ClearData() Limpe todo o almacenamento asociado a esta aplicación. Os datos almacenados por outras aplicacións non se ven afectados. Todos os datos elimínanse do servidor da aplicación.

Exemplo simple sen conexión

Seguindo un exemplo sinxelo, captura e almacena os nomes e as imaxes dos elementos cotiáns mentres está sen conexión. Almacena a información no almacenamento local do dispositivo para o seu posterior uso. Isto permite pechar a aplicación ou reiniciar o dispositivo sen perder datos.

Nota

Este exemplo usa un control de cámara para capturar imaxes. Como SaveData está limitado a 1 MB de datos cando se executa en Teams ou nun navegador web, este exemplo non funcionará con máis dunhas poucas imaxes. Ademais, dependendo da cámara, é posible que non funcione nin cunha imaxe. Use un dispositivo para traballar neste exemplo completo ou elimine o control da cámara e a parte da imaxe deste exemplo para executalo en Teams ou nun navegador web.

  1. Cree unha aplicación de lenzo en branco cun esquema de tabletas. Para obter máis detalles, lea crear unha aplicación a partir dun modelo e seleccione Deseño de tableta en Aplicación en branco.

  2. Engada un control de Entrada de texto e un control de Cámara e organíceos aproximadamente como se mostra:

    Engadíronse unha entrada de texto e un control da cámara a unha pantalla en branco.

  3. Engada un control de botón.

  4. Faga dobre clic no control do botón para cambiar o texto do botón a Engadir elemento (ou modifique a propiedade Texto).

  5. Estableza a propiedade OnSelect do control de botón con esta fórmula que engadirá un elemento á nosa colección:

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

    Engadiuse un control de botón co texto

  6. Engada outro control de botón.

  7. Faga dobre clic no control do botón para cambiar o texto do botón a Gardar datos (ou modifique a propiedade Texto).

  8. Estableza a propiedade OnSelect do control de botón con esta fórmula para gardar a nosa colección no dispositivo local:

    SaveData( MyItems, "LocalSavedItems" )
    

    Engadiuse un control de botón co texto

    É tentador probar o botón porque non afecta a nada. Pero só verá un erro ao crealo nun navegador web. Garde a aplicación primeiro e abra nun dispositivo antes de seguir os seguintes pasos para probar esta fórmula:

  9. Engada un terceiro control de botón.

  10. Faga dobre clic no control do botón para cambiar o texto do botón a Cargar datos (ou modifique a propiedade Texto).

  11. Estableza a propiedade OnSelect do control de botón con esta fórmula para cargar a nosa colección do dispositivo local:

    LoadData( MyItems, "LocalSavedItems" )
    

    Engadiuse un control de botón co texto

  12. Engada un control de Galería cunha disposición vertical que inclúe áreas de imaxe e texto:

    Selección de variedade de galería,

  13. Cando se lle solicite, seleccione a colección MyItems como orixe de datos desta galería. Isto axustará a propiedade Items do control de Galería:

    Selección da galería de orixe de datos.O control de imaxe no modelo da galería debería predeterminar a súa Imaxe propiedade ThisItem.Picture e os controis da etiqueta deberían as súas propiedades predeterminadas Text en ThisItem.Item. Comprobe estas fórmulas se despois de engadir elementos nos seguintes pasos non ve nada na galería.

  14. Coloque o control á dereita dos outros controis.

    Galería reposicionada á dereita da pantalla.

  15. Garde a aplicación. Se é a primeira vez que se garda, non é necesario publicala. Se non é a primeira vez, publique a aplicación despois de gardala.

  16. Abre a aplicación nun dispositivo como un teléfono ou tableta. SaveDatae LoadData non se poden usar en Studio ou nun navegador web. Actualice a lista de aplicacións se non ve a aplicación de inmediato, pode tardar uns segundos en aparecer no seu dispositivo. Pechar sesión e volver á súa conta tamén poden axudar.

    Aplicación en execución sen elementos engadidos.Unha vez que se descargue a aplicación, podes desconectarte da rede e executar a aplicación sen conexión.

  17. Insira o nome e faga unha foto dun elemento.

  18. Seleccione o botón Engadir elemento. Repita a adición de elementos un par de veces para cargar a súa colección.

    Aplicación en execución con tres elementos engadidos.

  19. Seleccione o botón Gardar datos. Isto gardará os datos da súa colección no seu dispositivo local.

  20. Peche a aplicación. Perderase a súa colección na memoria, incluídos todos os nomes e imaxes do elemento, pero aínda estarán alí no almacenamento do dispositivo.

  21. Inicie a aplicación de novo. A colección da memoria volverá aparecer como baleira na galería.

    A aplicación volve executarse sen elementos engadidos.

  22. Seleccione o botón Cargar datos. A colección volverase encher cos datos almacenados no seu dispositivo e os seus elementos volverán estar na galería. A colección estaba baleira antes de que este botón chame a función LoadData; non había necesidade de chamar Collect ou ClearCollect antes de cargar os datos desde o almacenamento.

    Aplicación en execución con tres elementos restaurados despois de chamar á función LoadData.

  23. Seleccione o botón Cargar datos de novo. Os datos almacenados xuntaranse ao final da colección e aparecerá unha barra de desprazamento na galería. Se desexa substituír no canto de anexar, use a función Clear primeiro para despexar a colección antes de chamar a función LoadData.

    Aplicación en execución con seis elementos restaurados despois de chamar dúas veces á función LoadData.

Exemplo sen conexión máis avanzados

Para obter un exemplo detallado, consulte o artigo sobre capacidades sinxelas sen conexión.