Funcions SaveData, LoadData i ClearData
S'aplica a: Aplicacions de llenç
Desa i torna a carregar una col·lecció des de l'emmagatzematge de l'amfitrió de l'aplicació.
Nota
Aquestes funcions es poden utilitzar ara quan es reprodueix una aplicació en un navegador web com a característica experimental. Aquesta característica està inhabilitada per defecte. Per habilitar-la, aneu a Configuració>Properes característiques>Experimentals>Habilita SaveData, LoadData i ClearData al reproductor web." i activeu l'opció. Per enviar comentaris sobre aquesta característica experimental, aneu al Fòrum de la comunitat del Power Apps.
Descripció
La funció SaveData emmagatzema una col·lecció per a utilitzar-la més tard en un nom.
La funció LoadData torna a carregar una col·lecció per nom que s'ha desat prèviament amb SaveData. No podeu utilitzar aquesta funció per carregar una col·lecció d'una altra font.
La funció ClearData esborra l'emmagatzematge amb un nom específic o esborra tot l'emmagatzematge associat a l'aplicació si no es proporciona cap nom.
Nota
- El nom compartit entre SaveData, LoadData i ClearData és una clau, no un nom de fitxer. No ha de ser complex ja que els noms són únics per a cada aplicació i no hi ha cap perill de conflicte de noms. El nom no pot incloure cap d'aquests caràcters:
*".?:\<>|/
. - SaveData està limitat a 1 MB de dades per a Power Apps que s'executen al Teams i en un navegador web. No hi ha cap límit fix per executar Power Apps en un reproductor mòbil, però hi ha límits pràctics tractats a continuació.
- No utilitzeu SaveData per emmagatzemar dades confidencials al web perquè s'emmagatzemaran en text sense format.
Per utilitzar aquestes funcions per millorar el rendiment d'inici de l'aplicació, podeu fer el següent:
- Emmagatzemeu a la memòria cau dades de la fórmula App.OnStart en una primera execució.
- Torneu a carregar la memòria cau local en posteriors execucions.
També podeu utilitzar aquestes funcions per afegir funcionalitats simples fora de línia a l'aplicació.
No podeu utilitzar aquestes funcions dins d'un navegador quan:
- Es crea l'aplicació al Power Apps Studio.
Per provar l'aplicació, executeu-la a l'aplicació mòbil del Power Apps en un dispositiu Android o iPhone.
Aquestes funcions estan limitades per la quantitat de memòria de l'aplicació disponible, ja que operen en una col·lecció de la memòria. La memòria disponible pot variar en funció de diversos factors:
- El dispositiu i el sistema operatiu.
- La memòria que utilitza el reproductor del Power Apps.
- Complexitat de l'aplicació amb pantalles i controls.
Proveu l'aplicació amb escenaris previstos al tipus de dispositius que espereu que executi l'aplicació en emmagatzemar dades grans. Espereu que hi hagi entre 30 MB i 70 MB de memòria disponible, generalment.
Aquestes funcions depenen de la col·lecció que s'hagi definit implícitament amb Collect o ClearCollect. No cal que truqueu a Collect ni ClearCollect per carregar dades a la col·lecció per definir-la. És un cas comú en utilitzar LoadData després de SaveData. Tot el que es necessita és la presència d'aquestes funcions en una fórmula per definir implícitament l'estructura de la col·lecció. Per obtenir més informació, vegeu Crear i suprimir variables.
Les dades carregades s'annexaran a la col·lecció. Utilitzeu la funció Clear abans de trucar a LoadData si voleu començar amb una col·lecció buida.
Seguretat de dades
Considereu acuradament l'aïllament i l'encriptació de les dades emmagatzemades amb SaveData i decidiu si és adequat per a les vostres necessitats, especialment si els dispositius són compartits per diversos usuaris.
Les dades emmagatzemades amb SaveData són aïllades d'altres Power Apps pels Power Apps jugadors. Les dades s'emmagatzemen en funció de l'identificador d'aplicació de l'aplicació, aïllant automàticament l'espai de noms SaveData entre Power Apps.
El sistema operatiu i el navegador s'encarreguen d'aïllar les dades entre Power Apps altres aplicacions d'un dispositiu i amb llocs web. Per exemple, el sistema operatiu s'encarrega d'aïllar les dades emmagatzemades a Microsoft Outlook les dades emmagatzemades i Power Apps també d'aïllar aquestes dades de llocs web com Bing.com o PowerApps .com. Les instal·lacions de sandbox d'aplicacions integrades del sistema operatiu s'utilitzen per a l'emmagatzematge de SaveData , que normalment no és accessible ni ocult per a l'usuari.
Quan s'utilitza la mateixa aplicació, el sistema operatiu i el navegador també s'encarreguen d'aïllar les dades entre diferents usuaris a nivell de sistema operatiu. Per exemple, si dos usuaris diferents comparteixen un ordinador i utilitzen dues credencials d'inici de sessió de Windows diferents, el sistema operatiu s'encarrega d'aïllar les dades entre els dos usuaris de Windows.
Les dades poden o no estar aïllades entre diferents Power Apps usuaris si l'usuari del sistema operatiu és el mateix. No tots els Power Apps jugadors ho tracten de la mateixa manera. Per exemple, mentre inicieu sessió com el mateix usuari de Windows, al Power Apps reproductor, l'usuari tanca Power Apps la sessió i inicia la sessió com a usuari diferent Power Apps . Les dades emmagatzemades en una aplicació abans del canvi d'usuari Power Apps poden ser accessibles per al segon Power Apps usuari dins de la mateixa aplicació. Les dades també poden ser eliminades i el primer Power Apps usuari pot deixar d'accedir-hi. El comportament varia entre Power Apps jugadors.
El sistema operatiu també pot xifrar les dades o podeu utilitzar una eina d'administració de dispositius mòbils com Microsoft l'Intune. Les dades emmagatzemades en reproduir una aplicació en un navegador web no estan xifrades.
Sintaxi
SaveData( Col·lecció,Nom )
LoadData( Col·lecció,Nom [, IgnoreFitxerInexistent] )
- Col·lecció : obligatòria. Col·lecció que s'emmagatzemarà o carregarà.
- Nom : obligatori. Nom de l'emmagatzematge. El nom ha de ser el mateix per desar i carregar el mateix conjunt de dades. L'espai de noms no es comparteix amb altres aplicacions. Els noms no poden incloure cap d'aquests caràcters:
*".?:\<>|/
. - IgnoreNonexistentFile : opcional. Un valor booleà que indica què s'ha de fer si el fitxer ja no existeix. Utilitzeu false (per defecte) per retornar un error i true per suprimir l'error.
ClearData( [Nom] )
- Nom : opcional. Nom de l'emmagatzematge desat anteriorment amb SaveData. Si no s'indica res a Name, s'esborrarà tot l'emmagatzematge associat a l'aplicació.
Exemples
Fórmula | Descripció | Resultat |
---|---|---|
SaveData( LocalCache, "MyCache" ) | Deseu la col·lecció LocalCache al dispositiu de l'usuari amb el nom "MyCache", apte perquè LoadData la recuperi més endavant. | Les dades es desen a l'amfitrió de l'aplicació amb el nom "MyCache". |
LoadData( LocalCache, "MyCache" ) | Carrega la col·lecció LocalCache del dispositiu de l'usuari amb el nom "MyCache", emmagatzemat prèviament amb una trucada a SaveData. | Les dades es carreguen de l'amfitrió de l'aplicació amb el nom "MyCache". |
ClearData( "MyCache") | Esborra l'emmagatzematge amb el nom "MyCache". Totes les dades emmagatzemades amb aquest nom deixaran d'estar disponibles a través de LoadData. | Les dades s'eliminen de l'amfitrió de l'aplicació amb el nom "MyCache". |
ClearData() | Esborra tot l'emmagatzematge associat a aquesta aplicació. Les dades emmagatzemades per altres aplicacions no es veuen afectades. | Totes les dades s'eliminen de l'amfitrió de l'aplicació. |
Exemple senzill fora de línia
El següent exemple senzill captura i emmagatzema els noms i les imatges dels elements quotidians mentre es treballa fora de línia. Emmagatzema la informació de l'emmagatzematge local del dispositiu per a utilitzar-la més tard. Això permet tancar l'aplicació o que el dispositiu es reiniciï sense perdre dades.
Nota
Aquest exemple utilitza un control de càmera per capturar imatges. Com que SaveData està limitat a 1 MB de dades quan s'executa al Teams o en un navegador web, aquest exemple no funcionarà amb més d'unes poques imatges. A més, en funció de la càmera, pot ser que no funcioni ni tan sols amb una imatge. Utilitzeu un dispositiu per treballar amb aquest exemple complet, o suprimiu el control de la càmera i la part de la imatge d'aquest exemple per executar-lo al Teams o en un navegador web.
Creeu una aplicació de llenç en blanc amb una disposició de tauleta. Per obtenir més informació, llegiu Crear una aplicació a partir d'una plantilla i seleccioneu Disposició de tauleta a Aplicació en blanc.
Afegiu un control Entrada de text i un control Càmera i ordeneu-los més o menys com es mostra:
Afegiu un control Botó.
Feu doble clic al control de botó per canviar el text del botó per Afegeix un element (o bé, modifiqueu la propietat Text).
Definiu la propietat OnSelect del control de botó en aquesta fórmula que afegirà un element a la nostra col·lecció:
Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
Afegiu un altre control Botó.
Feu doble clic al control de botó per canviar el text del botó per Desa les dades (o bé, modifiqueu la propietat Text).
Definiu la propietat OnSelect del control de botó en aquesta fórmula per desar la nostra col·lecció al dispositiu local:
SaveData( MyItems, "LocalSavedItems" )
És temptador provar el botó, ja que no afecta res. Però només veureu un error perquè ho esteu creant en un navegador web. Deseu la primera aplicació i obriu-la en un dispositiu abans de continuar amb els passos següents per provar aquesta fórmula:
Afegiu un tercer control Botó.
Feu doble clic al control de botó per canviar el text del botó per Carrega les dades (o bé, modifiqueu la propietat Text).
Definiu la propietat OnSelect del control de botó en aquesta fórmula per carregar la nostra col·lecció des del dispositiu local:
LoadData( MyItems, "LocalSavedItems" )
Afegiu un control Galeria amb una disposició vertical que inclogui una imatge i àrees de text:
Quan se us demani, seleccioneu la col·lecció MyItems com a font de dades per a aquesta galeria. Això definirà la propietat Items del control Galeria:
El control d'imatge de la plantilla de galeria ha de tenir per defecte la propietat Image a ThisItem.Picture i els controls d'etiqueta han de ser Text per defecte a ThisItem.Item. Comproveu aquestes fórmules si no veieu res a la galeria després d'afegir els elements dels passos següents.
Col·loqueu els controls a la dreta de la resta de controls:
Deseu l'aplicació. Si és la primera vegada que es desa, no cal que la publiqueu. Si no és la primera vegada, publiqueu l'aplicació després de desar-la.
Obriu l'aplicació en un dispositiu, com ara un telèfon o una tauleta. SaveData i LoadData no es poden utilitzar a Studio ni en un navegador web. Actualitzeu la llista d'aplicacions si no veieu l'aplicació immediatament; pot ser que l'aplicació tardi uns quants a aparèixer al dispositiu. Tancar la sessió del compte i tornar a iniciar-la també pot ser d'ajuda.
Un cop descarregada l'aplicació, pots desconnectar-te de la xarxa i executar-la sense connexió.
Introduïu el nom i feu una foto d'un element.
Seleccioneu el botó Afegeix un element. Repetiu l'addició d'elements un parell de vegades per omplir la vostra col·lecció.
Seleccioneu el botó Desa les dades. Es desaran les dades de la col·lecció al dispositiu local.
Tanqueu l'aplicació. La col·lecció de la memòria es perdrà, inclosos tots els noms d'elements i les imatges, però encara continuaran a l'emmagatzematge del dispositiu.
Torneu a iniciar l'aplicació. La col·lecció de la memòria es tornarà a mostrar com a buida a la galeria.
Seleccioneu el botó Carrega les dades. La col·lecció s'ha de tornar a emplenar des de les dades emmagatzemades al dispositiu i els elements tornaran a la galeria. La col·lecció estava buida abans que aquest botó truqués a la funció LoadData; no calia trucar a Collect o ClearCollect abans de carregar les dades de l'emmagatzematge.
Torneu a seleccionar el botó Carrega les dades. Les dades emmagatzemades s'adjuntaran al final de la col·lecció i apareixerà una barra de desplaçament a la galeria. Si voleu substituir en comptes d'annexar, utilitzeu la funció Clear abans per esborrar la col·lecció abans de trucar a la funció LoadData.
Exemple més avançat fora de línia
Per obtenir un exemple detallat, vegeu l'article sobre les funcionalitats simples fora de línia.