Forstå datakilder til lærredapps

I Power Apps bruger de fleste lærredapps eksterne oplysninger, der er lagret i cloudtjenester kaldet Datakilder. Et almindeligt eksempel er en tabel i en Excel-fil, der er gemt i OneDrive for Business. Apps kan få adgang til disse datakilder ved hjælp af Forbindelser.

I denne artikel beskrives de forskellige typer datakilder, og hvordan du arbejder med datakilder i tabeller.

Det er nemt at oprette en app, som udfører grundlæggende læsning og skrivning til en datakilde. Men nogle gange vil du gerne have mere kontrol over, hvordan data flyder ind og ud af din app. I denne artikel beskrives det, hvordan funktionerne Patch, DataSourceInfo, Validate og Errors giver større kontrol.

Typer af datakilder

Datakilder kan være forbundet til en cloudtjeneste, eller de kan være lokale for en app.

Forbundne datakilder

De mest almindelige datakilder er tabeller, som du kan bruge til at hente og lagre oplysninger. Du kan bruge forbindelser til datakilder til at læse og skrive data i Microsoft Excel-projektmapper, lister, der er oprettet ved hjælp af Microsoft Lister, SharePoint-biblioteker, SQL-tabeller og mange andre formater, der kan gemmes i Cloud Services som OneDrive for Business, DropBox og SQL Server.

Andre datakilder end tabeller omfatter mail, kalendere, Twitter og meddelelser, men denne artikel kommer ikke ind på disse andre typer datakilder.

Lokale datakilder

Når du bruger kontrolelementerne Galleri, Vis formular og Rediger formular, er det let at oprette en app, der læser og skriver data fra en datakilde. Kom i gang ved at læse artiklen Om dataformularer.

Når du beder Power Apps om at bygge en app fra data, bruges disse kontrolelementer. Bag kulisserne bruger appen en intern tabel til lagring og manipulering af data, der kommer fra datakilden.

Samling er en særlig datatype, som er lokal for appen og ikke sikkerhedskopieret af en forbindelse til en cloudtjeneste, så oplysningerne kan ikke deles på tværs af enheder for samme bruger eller mellem brugere. Samlinger kan indlæses og gemmes lokalt.

Typer af tabeller

Tabeller, der er interne i en Power Apps-app, er faste værdier, på samme måde som et tal eller en streng er en værdi. Interne tabeller er ikke gemt hvor som helst, og de findes kun i din apps hukommelse. Du kan ikke direkte ændre en tabels struktur og data. Du kan i stedet for oprette en ny tabel ved brug af en formel, som du bruger til at lave en ændret kopi af den oprindelige tabel.

Eksterne tabeller er gemt i en datakilde til senere overførsel og deling. Power Apps indeholder "forbindelser" til at læse og skrive lagrede data. Inden for en forbindelse kan du få adgang til flere tabeller med oplysninger. Du vælger, hvilke tabeller der skal bruges i din app, og hver tabel bliver en separat datakilde.

Se Arbejde med tabeller for at få flere detaljer om interne tabeller, men artiklen er også relevant for eksterne tabeller i en cloudtjeneste.

Arbejde med tabeller

Du kan bruge datakilder i en tabel på samme måde, som du bruger en intern Power Apps-tabel. Ligesom en intern tabel har hver datakilde poster, kolonner, og egenskaber, som du kan bruge i formler. Derudover:

  • Datakilden har de samme kolonnenavne og datatyper som den underliggende tabel i forbindelsen.

    Bemærk

    SharePoint- og Excel-datakilder, der indeholder kolonnenavne med mellemrum, erstatter Power Apps hvert mellemrum med "_x0020_". "Column Name" vises f.eks. i SharePoint som "Column_x0020_Name" i Power Apps, når den vises i datalayoutet eller bruges i en formel.

  • Datakilden indlæses automatisk fra tjenesten, når appen er indlæst. Du kan tvinge data til at opdatere ved hjælp af funktionen Refresh.

  • Når brugere kører en app, kan de oprette, ændre og slette poster og skubbe ændringerne tilbage til den underliggende tabel i tjenesten.

    • Der kan oprettes poster med funktionerne Patch og Collect.
    • Poster kan ændres med funktionerne Patch, Update og UpdateIf.
    • Poster kan fjernes med funktionerne Remove og RemoveIf.
    • Fejl, når du arbejder med en datakilde, er tilgængelige via funktionen Errors.
  • Funktionerne DataSourceInfo, Defaults og Validate indeholder oplysninger om datakilden, som du kan bruge til at optimere brugeroplevelsen.

Oprette datakilder

Power Apps kan ikke bruges til at oprette en forbundet datakilde eller ændre dens struktur. Datakilden skal allerede være at finde i en tjeneste et sted. Eksempelvis skal du for at oprette en tabel i en Excel-projektmappe, der er gemt på OneDrive, først bruge Excel Online på OneDrive for at oprette en projektmappe. Derefter skal du oprette en forbindelse til den fra din app.

En samling af datakilder kan dog oprettes og redigeres i en app, men de er kun midlertidige.

Vise en eller flere poster

Informationsflow, når en app læser oplysningerne i en datakilde. Diagrammet ovenfor viser flowet af oplysninger, når en app indlæser oplysningerne i en datakilde:

  • Oplysningerne lagres og deles via en lagertjeneste (i dette tilfælde Microsoft Lister eller SharePoint Online).
  • En forbindelse gør disse oplysninger tilgængelige for appen. Forbindelsen sørger for godkendelse af brugeren, så denne kan få adgang til oplysningerne.
  • Når appen er startet, eller funktionen Refresh er aktiveret, hentes oplysninger fra forbindelsen til en datakilde i appen til lokal brug.
  • Formler bruges til at læse oplysninger og vise dem i kontrolelementer, som brugeren kan se. Du kan få vist poster for en datakilde ved hjælp af et galleri i et skærmbillede og forbinde egenskaben Items til datakilden: Gallery.Items = DataSource. Du forbinder kontrolelementer i galleriet til galleriet ved hjælp af kontrolelementernes egenskab Default.
  • Datakilden er også en tabel. Så du kan bruge Filter, Sort, AddColumns og andre funktioner til at indskrænke og udvide datakilden, før du bruger den som en helhed. Du kan også bruge Lookup, First, Last og andre funktioner til at arbejde med individuelle poster.

Redigere en post

I forrige afsnit så du, hvordan en datakilde læses. Bemærk, at pilene i diagrammet ovenfor er ensrettede. Ændringer af en datakilde skubbes ikke tilbage gennem de samme formler, hvorfra dataene blev hentet. Der bruges i stedet nye formler. Et andet skærmbillede bruges ofte til at redigere en post end til gennemsyn af poster, især på en mobilenhed.

Bemærk, at for at ændre en eksisterende post i en datakilde, skal posten oprindeligt komme fra datakilden. Posten kan have rejst gennem et galleri, en kontekstvariabel og et vilkårligt antal formler, men dens oprindelse skal kunne spores tilbage til datakilden. Det er vigtigt, da yderligere oplysninger, som entydigt identificerer posten, følger med den, for at sikre at du redigerer den korrekte post.

Informationsflow til opdatering af en datakilde. Diagrammet ovenfor viser flowet af oplysninger for at opdatere en datakilde:

  • Et kontrolelement af typen Rediger formular indeholder en objektbeholder for inputkort, som består af kontrolelementer til brugerinput som f.eks. et kontrolelement af typen tekstinput eller en skyder. Egenskaberne DataSource og Item bruges til at identificere posten, du vil redigere.
  • Hvert inputkort har en egenskab af typen Default, der normalt er angivet til feltet i formularens post af typen ThisItem. Kontrolelementerne i inputkortet får derefter deres inputværdier fra Default. Du behøver normalt ikke at ændre dette.
  • Hvert inputkort viser en egenskab af typen Update. Denne egenskab knytter brugerens input til et bestemt felt i posten for at skrive tilbage til datakilden. Du behøver normalt ikke at ændre dette.
  • En knap eller et image-kontrolelement i skærmbilledet gør det muligt for brugeren at gemme ændringer i posten. Formlen OnSelect i kontrolelementet kalder funktionen SubmitForm for at udføre denne opgave. SubmitForm læser alle egenskaberne af typen Update for kort og bruger dette til at skrive tilbage til datakilden.
  • Der vil nogle gange være problemer. En netværksforbindelse kan være nede, eller der er foretaget en valideringskontrol af tjenesten, som programmet ikke kendte til. Egenskaberne Error og ErrorKind for formularens kontrolelement gør disse oplysninger tilgængelige, så du kan vise dem til brugeren.

Du kan også bruge funktionen Patch eller Error til at få mere detaljeret kontrol over processen. Kontrolelementet Rediger formular viser en egenskab af typen Updates, så du kan læse værdierne i felterne i formularen. Du kan også bruge denne egenskab til at kalde en brugerdefineret forbindelse på en forbindelse, der fuldstændigt omgår funktionerne Patch og SubmitForm.

Validering

Før du foretager en ændring af en post, skal appen gøre, hvad den kan, for at sikre at ændringen vil være acceptabel. Der er to grunde til dette:

  • Øjeblikkelig feedback til brugeren. Det bedste tidspunkt at løse et problem på er lige, når det sker, så det er frisk i brugerens hukommelse. Rød tekst, der identificerer et problem med indtastningen, kan bogstaveligt talt vises med hver berøring eller hvert tastetryk.
  • Mindre netværkstrafik og mindre ventetid for brugeren. Flere problemer, der er registreret i appen, betyder færre samtaler via netværket for at finde og løse problemer. Hver samtale tager tid, hvor brugeren skal vente, før det er muligt at fortsætte.

Power Apps tilbyder to værktøjer til validering:

  • Datakilden kan give oplysninger om, hvad der er og ikke er gyldigt. Tal kan f.eks. have minimale og maksimale værdier, og en eller flere indtastninger kan være påkrævet. Du kan få adgang til disse oplysninger med funktionen DataSourceInfo.
  • Funktionen Validate bruger de samme oplysninger til at kontrollere værdien af en enkelt kolonne eller en hel post.

Fejlhåndtering

Flot, du har valideret din post. Tid til at opdatere denne post med Patch!

Men desværre kan der stadig være et problem. Netværket er nede, validering af tjenesten mislykkedes, eller brugeren har ikke de rette tilladelser, bare for at nævne nogle få af de mulige fejl din app kan støde på. Den skal reagere korrekt på fejlsituationer, levere feedback til brugeren og udgøre en metode til at rette fejlen.

Når der opstår fejl med en datakilde, registrerer din app automatisk oplysninger om fejlen og gør dem tilgængelige via funktionen Error. Fejl er knyttet til de poster, der havde problemer. Hvis problemet er noget, brugeren kan løse, som f.eks. et valideringsproblem, kan brugeren indsende posten igen, så bliver fejlene fjernet.

Hvis der opstår en fejl, når der oprettes en post med Patch eller Collect, er der ingen post at knytte eventuelle fejl til. I dette tilfælde returneres tom af Patch og kan bruges som postargumentet til Errors. Fejl under oprettelse ryddes med den næste handling.

Funktionen Errors returnerer en tabel med oplysninger om fejlen. Disse oplysninger kan omfatte kolonneoplysninger, hvis fejlen kan henføres til en bestemt kolonne. Brug fejlmeddelelser på kolonneniveau i etiketkontrolelementer, der er tæt på det sted, hvor kolonnen er placeret på skærmbilledet Rediger. Brug fejlmeddelelser på postniveau, hvor Kolonne i fejltabellen er tom, på et sted tæt på knappen Gem for hele posten.

Arbejde med store datakilder

Når du opretter rapporter fra store datakilder (måske flere millioner poster), vil du gerne minimere netværkstrafik. Antag, at du vil rapportere om alle kunder, der har en StatusCode af typen "Platin" i New York City. Og at tabellen Kunder indeholder millioner af poster.

Du ønsker ikke at få disse millioner af kunder ind i din app og derefter vælge de ønskede kunder. Det, du ønsker, er, at dette valg sker i cloudtjenesten, hvor din tabel er lagret, og kun sende de valgte poster over netværket.

Mange funktioner, men ikke alle, som du kan bruge til at vælge poster, kan være delegerede, hvilket betyder, at de køres i cloudtjenesten. Du kan lære at gøre dette ved at læse om Delegering.

Samlinger

Samlinger er en speciel type datakilde. De er lokale for appen og ikke sikkerhedskopieret af en forbindelse til en cloudtjeneste, så oplysningerne kan ikke deles på tværs af enheder for samme bruger eller mellem brugere. De fungerer ligesom alle andre datakilder, med nogle få undtagelser:

  • Samlinger kan oprettes dynamisk med funktionen Collect. I modsætning til forbindelsesbaserede datakilder behøver de ikke at være oprettet på forhånd.
  • Kolonnerne i en samling kan ændres til enhver tid ved brug af funktionen Collect.
  • Samlinger tillader identiske poster. Der kan være mere end én kopi af den samme post i en samling. Funktioner som Remove fungerer på den første forekomst, de finder, medmindre argumentet All er angivet.
  • Du kan bruge funktionerne SaveData og LoadData til at gemme og genindlæse en kopi af samlingen. Oplysningerne er gemt på et privat sted, som andre brugere, apps eller enheder ikke har adgang til.
  • Du kan bruge kontrolelementerne Eksportér og Importér til at gemme og genindlæse en kopi af samlingen til en fil, som brugeren kan interagere med.

Du kan se flere oplysninger om arbejde med en samling som en datakilde i Oprette og vedligeholde en samling.

Samlinger bruges ofte til at bevare den globale tilstand for appen. Se de tilgængelige indstillinger for administration af tilstanden i Arbejde med variabler.

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).