Slik fungerer datakilder for lerretsapper i Power Apps

De fleste lerretsapper i Power Apps bruker ekstern informasjon som er lagret i skytjenester, kalt Datakilder. Et vanlig eksempel er en tabell i en Excel-fil som er lagret i OneDrive for Business. Appene får tilgang til disse datakildene ved hjelp av Tilkoblinger.

Denne artikkelen beskriver de ulike typene datakilder, og hvordan du arbeider med datakilder for tabeller.

Det er enkelt å opprette en app som utfører grunnleggende lesing fra og skriving til en datakilde. Men noen ganger vil du ha mer kontroll over hvordan data flyter inn og ut av appen. Denne artikkelen beskriver hvordan funksjonene Patch, DataSourceInfo, Validate og Errors gir mer kontroll.

Datakildetyper

Datakilder kan være koblet til en skytjeneste, eller de kan være lokale for en app.

Tilkoblede datakilder

De vanligste datakildene er tabeller, som du kan bruke til å hente og lagre informasjon. Du kan bruke tilkoblinger til datakilder til å lese og skrive data i Microsoft Excel-arbeidsbøker, SharePoint-lister, SQL-tabeller og en rekke andre formater, som kan lagres i skytjenester, for eksempel OneDrive for Business, DropBox og SQL Server.

Andre datakilder enn tabeller inkluderer e-post, kalendere, Twitter og varslinger, men denne artikkelen omhandler ikke disse andre datakildetypene.

Lokale datakilder

Ved hjelp av kontrollene Galleri, Visningsskjema, og Redigeringsskjema, er det enkelt å opprette en app som leser og skriver data fra en datakilde. Les artikkelen Å forstå dataskjemaer for å komme i gang.

Disse kontrollene brukes når du ber Power Apps om å opprette en app fra data. Bak kulissene bruker appen en intern tabell til å lagre og manipulere dataene som kommer fra datakilden.

En spesiell datakildetype er Samling, som er lokal for appen og ikke støttes av en tilkobling til en tjeneste i skyen, slik at informasjonen ikke kan deles på tvers av enheter for samme bruker, eller mellom brukere. Samlinger kan lastes inn og lagres lokalt.

Tabelltyper

Tabeller som er interne for en Power Apps-app er faste verdier, på samme måte som at et tall eller en streng er en verdi. Interne tabeller blir ikke lagret noe sted, de eksisterer bare i appens minne. Du kan ikke endre strukturen og dataene i en tabell direkte. Det du i stedet kan gjøre, er å opprette en ny tabell gjennom en formel: du kan bruke denne formelen til å lage en endret kopi av den opprinnelige tabellen.

Eksterne tabeller blir lagret i en datakilde for senere henting og deling. Power Apps tilbyr «tilkoblinger» for å lese og skrive lagrede data. Du har tilgang til flere tabeller med informasjon i en tilkobling. Du velger hvilke tabeller som skal brukes i appen, og hver av dem blir til en egen datakilde.

For å finne ut mer, kan du se Arbeide med tabeller, som gir mer detaljert informasjon om interne tabeller, men som også er gjeldende for eksterne tabeller som befinner seg i en skytjeneste.

Arbeide med tabeller

Du kan bruke tabelldatakilder på samme måte som du bruker en intern Power Apps-tabell. Hver datakilde har poster, kolonner og egenskaper som du kan bruke i formler, akkurat som en intern tabell. I tillegg:

  • Datakilden har de samme kolonnenavnene og datatypene som den underliggende tabellen i tilkoblingen.

    Obs!

    For SharePoint- og Excel-datakilder som inneholder kolonnenavn med mellomrom, erstatter Power Apps mellomrommene med "_x0020_". "Kolonnenavn" i SharePoint eller Excel vil for eksempel vises som "Column_x0020_Name" i Power Apps når de vises i dataoppsettet eller brukes i en formel.

  • Datakilden lastes automatisk inn fra tjenesten når appen lastes inn. Du kan fremtvinge oppdatering av dataene ved hjelp av Refresh-funksjonen.

  • Når brukere kjører en app, kan de opprette, endre og slette poster, og skyve disse endringene tilbake til den underliggende tabellen i tjenesten.

  • Funksjonene DataSourceInfo, Defaults og Validate gir informasjon om datakilden som du kan bruke til å optimalisere brukeropplevelsen.

Opprette datakilder

Power Apps kan ikke brukes til å opprette en koblet datakilde eller til å endre strukturen på den. Datakilden må allerede finnes et sted i en tjeneste. Du bruker for eksempel først Excel Online på OneDrive til å opprette en arbeidsbok for å opprette en tabell i en Excel-arbeidsbok lagret på OneDrive. Deretter oppretter du en tilkobling til den fra appen.

Datakildesamlinger kan imidlertid opprettes og endres inne i en app, men de er bare midlertidige.

Vise én eller flere poster

Diagrammet ovenfor viser informasjonsflyten når en app leser informasjonen i en datakilde:

  • Informasjonen lagres og deles gjennom en lagringstjeneste (i dette tilfellet en SharePoint-liste på et Office 365-område).
  • En tilkobling gjør denne informasjonen tilgjengelig for appen. Tilkoblingen tar hånd om godkjenning av brukeren for tilgang til informasjonen.
  • Når appen startes eller Refresh-funksjonen trykkes på, blir informasjonen hentet fra tilkoblingen og til en datakilde i appen for lokal bruk.
  • Formler brukes til å lese informasjonen og vise den i kontroller som brukeren kan se. Du kan vise postene for en datakilde ved hjelp av et galleri på skjermen, og overføre Items-egenskapen til datakilden: Gallery.Items = DataSource. Du overfører kontrollene i galleriet til galleriet, ved hjelp av kontrollens Default-egenskap.
  • Datakilden er også en tabell. Du kan bruke funksjonene Filter, Sort, AddColumns samt andre funksjoner hvis du ønsker å begrense og utvide datakilden før du bruker den som en helhet. Du kan også bruke funksjonene Lookup, First, Last samt andre funksjoner hvis du ønsker å arbeide med enkeltposter.

Endre en post

I den foregående delen så du hvordan du leser en datakilde. Legg merke til at pilene i diagrammet over peker i én retning. Endringer i en datakilde blir ikke skjøvet tilbake gjennom de samme formlene som dataene ble hentet fra. I stedet brukes nye formler. Det bruker ofte en annen skjerm for redigering av en post enn for å bla gjennom poster, spesielt på en mobil enhet.

Vær oppmerksom på at hvis du vil endre en eksisterende post for en datakilde, må posten opprinnelig ha kommet fra datakilden. Posten kan ha beveget seg gjennom et galleri, en kontekstvariabel, og et ubegrenset antall formler, men opprinnelsen skal være sporbar tilbake til datakilden. Dette er viktig fordi tilleggsinformasjon flyttes sammen med posten som er unik for å identifiserer den, noe som sikrer at du endrer den riktige posten.

Diagrammet ovenfor viser flyten av informasjon for å oppdatere en datakilde:

  • En Edit form-kontroll angir en beholder for inndatakort, som består av brukerinndatakontroller, som for eksempel en tekstinndatakontroll eller en glidebryter. DataSource- og Item-egenskaper brukes til å identifisere posten som skal redigeres.
  • Hvert inndatakort har en Default-egenskap, som vanligvis er satt til feltet for skjemaets ThisItem-post. Kontrollene i inndatakortet vil deretter hente inndataverdiene sine fra Default. Vanligvis trenger du ikke endre dette.
  • Hvert inndatakort viser en Update-egenskap. Denne egenskapen kartlegger brukerens inndata for et bestemt felt i posten for å skrive tilbake til datakilden. Vanligvis trenger du ikke endre dette.
  • En knapp eller en bildekontroll på skjermen lar brukeren lagre endringer i posten. OnSelect-formelen for kontrollen påkaller SubmitForm-funksjonen til å gjøre dette arbeidet. SubmitForm leser alle Update-egenskapene til kortene og bruker dette til å skrive tilbake til datakilden.
  • Noen ganger vil det dukke opp problemer. En nettverkstilkobling kan være nede, eller en valideringskontroll er utviklet av tjenesten som appen ikke kjente til. Error- og ErrorKind-egenskapene for skjemakontrollen gjør denne informasjonen tilgjengelig, slik at du kan vise den til brukeren.

For en mer finjustert kontroll over prosessen kan du også bruke funksjonene Patch og Errors. Edit form-kontrollen viser en Update-egenskap, slik at du kan lese feltverdiene i skjemaet. Du kan også bruke denne egenskapen til å oppkalle en egendefinert kobling på en tilkobling, noe som fullstendig hopper over funksjonene Patch og SubmitForm.

Validering

Før du gjør en endring i en post, bør appen gjøre det den kan for å sikre at endringen vil godtas. Det er to grunner til dette:

  • Umiddelbar tilbakemelding til brukeren. Det beste tidspunktet for å løse et problem er akkurat idét det oppstår. Med bokstavelig talt hver berøring eller hvert tastetrykk, kan rød tekst vises som identifiserer et problem med oppføringen.
  • Mindre nettverkstrafikk og mindre ventetid for brukeren. Jo flere problemer som oppdages i appen, jo færre samtaler over nettverket for å finne og løse problemer. Hver samtale tar tid, hvorpå brukeren må vente før de kan gå videre.

Power Apps tilbyr to verktøy for validering:

  • Datakilden kan gi informasjon om hva som er gyldig, og hva som ikke er gyldig. For eksempel kan tall ha minimums- og maksimumsverdier, og en eller flere poster kan være nødvendig. Du kan få tilgang til denne informasjonen med DataSourceInfo-funksjonen.
  • Validate-funksjonen bruker den samme informasjonen til å kontrollere verdien av en enkelt kolonne eller en hel post.

Feilhåndtering

Flott, du har godkjent posten. Det er på tide å oppdatere posten med Patch!

Men det kan dessverre fremdeles være problemer. Nettverket kan være nede, validering hos tjenesten kan mislykkes, eller brukeren har ikke de riktige tillatelsene, bare for å nevne noen av de mulige feilene appen din kan støte på. Den må respondere riktig på feilsituasjoner, gi tilbakemelding til brukeren og tilby en fremgangsmåte slik at brukeren får løst problemet.

Når det oppstår feil med en datakilde, vil appen automatisk registrere feilinformasjonen og gjøre den tilgjengelig gjennom Errors-funksjonen. Feil er tilknyttet postene som hadde problemene. Hvis problemet er noe brukeren kan reparere, som for eksempel et problem med validering, kan de sende inn posten på nytt, og feilene vil bli fjernet.

Hvis det oppstår en feil når en post opprettes med Patch eller Collect, er det ingen post å knytte eventuelle feil til. I dette tilfellet vil tom bli returnert av Patch og kan brukes som argument for poster til Errors. Opprettingsfeil blir fjernet med neste operasjon.

Errors-funksjonen returnerer en tabell med feilinformasjon. Denne informasjonen kan inkludere kolonneinformasjonen, hvis feilen kan tilskrives til en bestemt kolonne. Bruk feilmeldinger for kolonnenivå i etikettkontroller som er nær der kolonnen er plassert på Rediger-skjermen. Bruk feilmeldinger på postnivå hvis kolonnen i feiltabellen er tom, på en plassering nær Lagre-knappen for hele posten.

Arbeide med store datakilder

Når du oppretter rapporter fra store datakilder (kanskje millioner av poster), ønsker du at nettverkstrafikken skal reduseres. La oss si at du vil rapportere om alle kunder som har en StatusCode kalt "Platinum" i New York. Og at kundetabellen inneholder millioner av poster.

Du ønsker ikke å hente alle disse kundene til appen din, for deretter å velge dem du ønsker. Det du ønsker er at disse valgene skal skje i skytjenesten der tabellen er lagret, og sende de valgte postene over nettverket.

Mange, men ikke alle, funksjoner som du kan bruke til å velge poster kan delegeres, noe som betyr at de kjøres i skytjenesten. Finn ut hvordan du gjør dette ved å lese om delegering.

Samlinger

Samlinger er en spesiell datakildetype. De er lokale for appen og støttes ikke av en tilkobling til en tjeneste i skyen, slik at informasjonen ikke kan deles på tvers av enheter for samme bruker, eller mellom brukere. De fungerer som en hvilken som helst annen datakilde, med noen unntak:

  • Samlinger kan opprettes dynamisk med Collect-funksjonen. De trenger ikke å etableres på forhånd, slik som tilkoblingsbaserte datakilder gjør.
  • Kolonnene i en samling kan endres når som helst ved bruk av Collect-funksjonen.
  • Samlinger tillater dupliserte poster. Mer enn én kopi av samme post kan finnes i en samling. Funksjoner, som for eksempel Remove, skal fungere på det første treffet den finner, med mindre Alle-argumentet er angitt.
  • Du kan bruke funksjonene SaveData og LoadData for å lagre og laste inn en kopi av samlingen på nytt. Informasjonen blir lagret på en privat plassering som andre brukere, apper eller enheter ikke har tilgang til.
  • Du kan bruke Export- og Import-kontrollene for å lagre og laste inn en kopi av samlingen på nytt til en fil som brukeren kan samhandle med.

Hvis du vil ha mer informasjon om hvordan du arbeider med en samling som datakilde, kan du se Opprett og oppdater en samling.

Samlinger brukes vanligvis til å opprette en global tilstand for appen. Du kan se Arbeide med variabler for de tilgjengelige alternativene for å administrere en tilstand.