Funktionerne SaveData, LoadData og ClearData

Gælder for: Lærredapps

Gemmer og genindlæser en samling fra appværtens lager.

Bemærk

Disse funktioner kan nu bruges, når du spiller en app i en webbrowser som en eksperimentel funktion. Denne funktion er deaktiveret som standard. Du kan aktivere funktionen ved at gå til Indstillinger>Kommende funktioner>Eksperimentel>Aktiveret SaveData, LoadData, ClearData på web-afspiller.", og slå kontakten til. Hvis du vil sende feedback om denne eksperimentelle funktion, skal du gå til Power Apps-community-forum.

Beskrivelse

Funktionen SaveData gemmer en samling til senere brug under et navn.

Funktionen LoadData genindlæser en samling efter navn, der tidligere blev gemt med SaveData. Du kan ikke bruge denne funktion til at indlæse en samling fra en anden kilde.

Funktionen ClearData fjerner lagerpladsen under et bestemt navn eller fjerner al lagerplads, der er tilknyttet appen, hvis der ikke gives noget navn.

Bemærk

  • Det navn, der deles mellem SaveData, LoadData og ClearData, er en nøgle, ikke et filnavn. Det er ikke nødvendigt at have komplekse navne, da navnene er entydige for hver app, og der ikke er nogen fare for navnekonflikter. Navnet må ikke indeholde følgende tegn: *".?:\<>|/.
  • SaveData er begrænset til 1 MB data med Power Apps, der kører i Teams og i en webbrowser. Der er ingen fast grænse for Power Apps, der kører på en mobilafspiller, men der er praktiske begræsninger, som beskrevet nedenfor.
  • Brug ikke SaveData til at gemme følsomme data på internettet, da de gemmes som almindelig tekst.

Brug disse funktioner til at forbedre ydeevnen ved start af apps ved at:

  • Cachelagre data i formlen App. OnStart ved første kørsel.
  • Genindlæse den lokale cache ved næste kørsler.

Du kan også bruge disse funktioner til at føje simple offlinefunktioner til din app.

Du kan ikke bruge disse funktioner i en browser, når du:

  • Oprette appen i Power Apps Studio.

Hvis du vil teste din app, skal du køre den i Power Apps Mobile på en iPhone eller Android-enhed.

Disse funktioner begrænses af mængden af tilgængelig app-hukommelse, når de opererer på en samling i hukommelsen. Tilgængelig hukommelse kan variere afhængigt af faktorer som f.eks.:

  • Enheden og operativsystemet.
  • Den hukommelse, som Power Apps-afspilleren bruger.
  • Kompleksiteten af appen med skærmbilleder og kontrolelementer.

Test din app med forventede scenarier på den type enheder, du forventer, at appen skal køre, når den gemmer store mængder data. Du skal normalt have mellem 30 MB og 70 MB tilgængelig hukommelse.

Disse funktioner afhænger af samlingen, der implicit defineres med Collect eller ClearCollect. Du behøver ikke at kalde Collect eller ClearCollect for at indlæse data i samlingen for at definere dem. Det er almindeligt, når du bruger LoadDataefter en tidligere SaveData. Det eneste, der skal bruges, er tilstedeværelsen af disse funktioner i en formel, for at definere strukturen i samlingen implicit. Du kan finde flere oplysninger under oprette og fjerne variabler.

De indlæste data føjes til samlingen. Brug funktionen Clear, før du kalder LoadData, hvis du vil starte med en tom samling.

Datasikkerhed

Nøje overveje isolering og kryptering af data, der lagres med SaveData, og beslut, om de er passende til dine behov, især hvis enheder deles af flere brugere.

Data, der lagres med SaveData, er isoleret fra andre Power Apps af Power Apps-spillerne. Data lagres på baggrund af appens app-id og isolerer automatisk savedata-navne mellem Power Apps.

Operativsystemet og browseren er ansvarligt for at isolere data mellem Power Apps og andre apps på en enhed og på websteder. Operativsystemet er f.eks. ansvarligt for at isolere de data, der lagres i Microsoft Outlook, fra data, der lagres i Power Apps, og for at isolere dataene fra websteder som Bing.com eller PowerApps.com. Operativsystemets indbyggede app-sandkasse faciliteter bruges til SaveData-lager, som normalt ikke er tilgængelige for eller skjult for brugeren.

Når du bruger den samme app, er operativsystemet og browseren også ansvarlig for at isolere dataene mellem brugere på forskellige operativsystemniveau. Hvis to forskellige brugere f.eks. deler en computer og bruger to forskellige legitimationsoplysninger til Windows-logon, er operativsystemet ansvarligt for at isolere data mellem de to Windows-brugere.

Data kan eller kan ikke isoleres mellem forskellige Power Apps-brugere, hvis operativsystemets bruger er den samme. Ikke alle Power Apps-spillere behandler det på samme måde. Når brugeren f.eks. er logget på som den samme Windows-bruger i Power Apps-spilleren, logger brugeren af Power Apps og logger på som en anden Power Apps-bruger. Data, der lagres i en app før ændring af Power Apps-bruger, kan være tilgængelige for den anden Power Apps-bruger i den samme app. Dataene kan også fjernes, og den første Power Apps-bruger har muligvis ikke længere adgang til dem. Funktionsmåden varierer mellem Power Apps-spillerne.

Operativsystemet kan også kryptere dataene eller du kan bruge et værktøj til administration af mobilenheder, f.eks. Microsoft Intune. Data, der lagres, når du spiller en app i en webbrowser, er ikke krypteret.

Syntaks

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

  • Collection - påkrævet. Samling, der skal gemmes eller indlæses.
  • Navn - påkrævet. Navnet på lageret. Navnet skal være det samme for at gemme og indlæse datasæt. Navneområdet deles ikke med andre apps. Navne må ikke indeholde følgende tegn: *".?:\<>|/.
  • IgnoreNonexistentFile – valgfri. En boolesk værdi, der angiver, hvad der skal gøres, hvis filen ikke allerede findes. Brug falsk (standard) til at returnere en fejl og sand for at undertrykke fejlen.

ClearData( [Navn] )

  • Navn – valgfrit. Navnet på det lager, der tidligere er gemt sammen med SaveData. Hvis Navn ikke er angivet, ryddes al lagerplads, der er knyttet til appen.

Eksempler

Formel Beskrivelse Resultat
SaveData( LocalCache, "MyCache" ) Gem samlingen LocalCache på brugerens enhed under navnet "MyCache", så LoadData kan hente den senere. Data gemmes i appværten under navnet "MyCache".
LoadData( LocalCache, "MyCache" ) Indlæser samlingen LocalCache fra brugerens enhed under navnet "MyCache", der tidligere blev gemt med et kald til SaveData. Data indlæses fra appværten under navnet "MyCache".
ClearData( "MyCache" ) Rydder lagerpladsen under navnet "MyCache". Data, der lagres under dette navn, er ikke længere tilgængelige via LoadData. Data fjernes fra appværten under navnet "MyCache".
ClearData() Ryd al lagerplads, der er knyttet til denne app. Data, der lagres af andre apps, påvirkes ikke. Alle data fjernes fra appværten.

Simpelt offline eksempel

I følgende simple eksempel registreres og lagres navnene og billederne på hverdagsgenstande, mens du er i offlinetilstand. Oplysningerne gemmes i enhedens lokale lager til senere brug. Det betyder, at appen kan lukkes, eller enheden kan genstartes, uden at data mistes.

Bemærk

I dette eksempel bruges et kamerakontrolelement til at tage billeder. Da SaveData er begrænset til 1 MB data, når du kører i Teams eller en webbrowser, fungerer dette eksempel ikke med mere end et par billeder. Afhængigt af kameraet fungerer det måske ikke engang sammen med ét billede. Brug en enhed til at gennemgå dette fulde eksempel, eller fjern kameraets kontrol og billede i dette eksempel for at køre i Teams eller i en webbrowser.

  1. Opret en tom lærredapp med et tablet-layout. Du kan finde flere oplysninger ved at læse oprette en app fra en skabelon og vælge Tablet-layout under Tom app.

  2. Tilføj et Text input-kontrolelement og et Camera-kontrolelement, og arranger dem omtrent som vist:

    Et kontrolelement af typen Tekstinput og Kamera er føjet til en tom skærm.

  3. Tilføj et Button-kontrolelement.

  4. Dobbeltklik på knapkontrolelementet for at ændre knapteksten til Tilføj element (eller rediger egenskaben Text).

  5. Indstil egenskaben OnSelect for knapkontrolelementet til denne formel, der føjer et element til samlingen:

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

    Et knapkontrolelement, der er tilføjet med teksten

  6. Tilføj endnu et Button-kontrolelement.

  7. Dobbeltklik på knapkontrolelementet for at ændre knapteksten til Gem data (eller rediger egenskaben Text).

  8. Indstil egenskaben OnSelect for knapkontrolelementet til denne formel for at gemme vores samling på den lokale enhed:

    SaveData( MyItems, "LocalSavedItems" )
    

    Et knapkontrolelement, der er tilføjet med teksten

    Det er fristende at teste knappen, da den ikke påvirker noget. Imidlertid vises der kun en fejl, når du opretter websider i en webbrowser. Gem appen først, og åbn den på en enhed, før du følger de næste trin for at teste denne formel:

  9. Tilføj et tredje Button-kontrolelement.

  10. Dobbeltklik på knapkontrolelementet for at ændre knapteksten til Indlæs data (eller rediger egenskaben Text).

  11. Indstil egenskaben OnSelect for knapkontrolelementet til denne formel for at indlæse vores samling fra den lokale enhed:

    LoadData( MyItems, "LocalSavedItems" )
    

    Et knapkontrolelement, der er tilføjet med teksten

  12. Tilføj et Gallery-kontrolelement med et lodret layout, der indeholder et billede og tekstområder:

    Galleri-markering,

  13. Når du bliver bedt om det, skal du vælge samlingen MyItems som datakilde for galleriet. Det vil indstille egenskaben Items af Gallery-kontrolelementet:

    Gallerimarkering for datakilde. Kontrolelementet Image i galleriskabelonen skal som standard bruge egenskaben Image til ThisItem.Picture, og kontrolelementerne for etiketter skal begge som standard angive egenskaberne for Text til ThisItem.Item. Kontrollér disse formler, hvis der ikke vises noget i galleriet, efter du har tilføjet elementer i følgende trin.

  14. Placer kontrolelementet til højre for de andre kontrolelementer:

    Galleri er flyttet til højre side af skærmen.

  15. Gem din app. Hvis det er første gang, det er blevet gemt, behøver du ikke at udgive den. Hvis det ikke er første gang, skal du udgive appen, når du har gemt den.

  16. Åbn din app på en enhed, f.eks. en telefon eller tablet. SaveData og LoadData kan ikke bruges i Studio eller i en webbrowser. Opdater din app-liste, hvis din app ikke vises med det samme. Det kan tage et par sekunder, før appen vises på enheden. Du kan også hjælpe, hvis du logger af og på din konto.

    Appen kører, uden at der er tilføjet elementer. Når din app er hentet, kan du afbryde forbindelsen til netværket og køre appen offline.

  17. Angiv navnet, og tag et billede af et element.

  18. Vælg knappen Tilføj element. Gentag tilføjelsen af elementer et par gange for at give samlingen et indhold.

    App kører med tre elementer tilføjet.

  19. Vælg knappen Gem data. Derved gemmes dataene i din samling på den lokale enhed.

  20. Luk appen. Din samling i hukommelsen går tabt, inklusive alle elementnavne og billeder, men de er stadig i enhedens lager.

  21. Start appen igen. Samlingen i hukommelsen vises igen som tom i galleriet.

    App kører igen med ingen elementer tilføjet.

  22. Vælg knappen Indlæs data. Samlingen bliver udfyldt igen fra de gemte data på enheden, og dine elementer er tilbage i galleriet. Samlingen var tom, før denne knap kalder funktionen LoadData. Du behøver ikke at kalde Collect eller ClearCollect, før dataene blev indlæst fra lageret.

    Appen kører med tre elementer, der er gendannet efter kald til funktionen LoadData.

  23. Vælg knappen Indlæs data igen. De gemte data tilføjes nederst i samlingen, og der vises et rullepanel i galleriet. Hvis du vil erstatte i stedet for at tilføje, skal du bruge funktionen Clear først for at rydde samlingen, inden du kalder funktionen LoadData.

    Appen kører med seks elementer, der er gendannet efter kald til funktionen LoadData to gange.

Mere avanceret offline eksempel

Du kan finde et detaljeret eksempel i artiklen om simple offlinefunktioner.