De flesta PowerApps-appar använder extern information som lagras i molntjänster, så kallade datakällor. Ett vanligt exempel är en tabell i en Excel-fil som lagras på OneDrive för företag. Appar får åtkomst till dessa datakällor med hjälp av anslutningar.

I den här artikeln beskrivs olika typer av datakällor och hur du använder tabelldatakällor.

Det är enkelt att skapa en app som har grundläggande läsning och skrivning till en datakälla. Men ibland kan du vilja ha mer kontroll över hur informationen flödar in och ut från din app. I den här artikeln beskrivs hur funktionerna Patch, DataSourceInfo, Validate och Errors ger mer kontroll.

Olika typer av datakällor

Datakällor kan vara anslutna till en molntjänst eller finnas lokalt i en app.

Anslutna datakällor

De vanligaste datakällorna är tabeller, som du kan använda för att hämta och lagra information. Du kan använda anslutningar till datakällor för att läsa och skriva data i Microsoft Excel-arbetsböcker, SharePoint-listor, SQL-tabeller och många andra format Dessa kan sedan lagras i molntjänster som OneDrive för företag, DropBox, SQL Server osv.

Andra datakällor än tabeller är bland annat e-post, kalendrar, Twitter och meddelanden, men denna artikel tar inte upp dessa andra typer av datakällor.

Lokala datakällor

Med hjälp av kontrollerna Gallery, Display form och Edit form är det enkelt att skapa en app som läser och skriver data från en datakälla. Läs artikeln Förstå dataformulär för att komma igång.

När du vill att PowerApps ska skapa en app från data, används dessa kontroller. Appen använder en intern tabell i bakgrunden för att lagra och ändra data som kommer från datakällan.

En samling är en särskild typ av datakälla. Den är lokal i appen och säkerhetskopieras inte av någon anslutning till en tjänst i molnet. Det innebär att informationen inte kan delas mellan enheter hos samma användare eller mellan användare. Samlingar kan läsas in och sparas lokalt.

Olika typer av tabeller

Tabeller som är interna i en PowerApps-app är fasta värden, precis som ett tal eller en sträng är ett värde. Interna tabeller lagras inte någonstans, de finns bara i din apps minne. Du kan inte ändra struktur och data i en tabell. Vad du i stället kan göra är att skapa en ny tabell med hjälp av en formel. Du använder då formeln till att göra en ändrad kopia av den ursprungliga tabellen.

Externa tabeller lagras i en datakälla för senare hämtning och delning. PowerApps innehåller ”anslutningar” för att kunna läsa och skriva lagrade data. Inom en anslutning har du åtkomst till flera olika tabeller med information. Du väljer vilka tabeller som ska användas i din app och var och en blir en separat datakälla.

I Arbeta med tabeller ges mer information om interna tabeller, men detta gäller även för externa tabeller som finns i en molntjänst.

Arbeta med tabeller

Du kan använda tabelldatakällor på samma sätt som du använder en intern PowerApps-tabell. Precis som i en intern tabell har varje datakälla poster, kolumner och egenskaper som du kan använda i formler. Dessutom gäller följande:

  • Datakällan har samma kolumnnamn och datatyper som den underliggande tabellen i anslutningen.

    Obs! För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg ersätter PowerApps blankstegen med ”_x0020_”. Till exempel visas "Kolumnens namn" i SharePoint eller Excel som "Kolumnens_x0020_namn" i PowerApps när det visas i datalayouten eller används i en formel.

  • Datakällan läses in från tjänsten automatiskt när appen läses in. Du kan tvinga fram en uppdatering av datan med hjälp av funktionen Uppdatera.

  • När användarna kör en app kan de skapa, ändra och ta bort poster, samt skicka tillbaka ändringarna till den underliggande tabellen i tjänsten.

    • Poster kan skapas med funktionerna Patch och Collect.
    • Poster kan ändras med funktionerna Patch, Update och UpdateIf.
    • Poster kan tas bort med funktionerna Remove och RemoveIf.
    • Fel som uppstår när du arbetar med en datakälla är tillgängliga via funktionen Errors.
  • I funktionerna DataSourceInfo, Defaults och Validate finns information om datakällan som du kan använda för att optimera användarupplevelsen.

Skapa datakällor

PowerApps kan inte användas för att skapa en ansluten datakälla eller ändra dess struktur. Datakällan måste redan finnas i en tjänst någonstans. Om du till exempel vill skapa en tabell i en Excel-arbetsbok som lagras på OneDrive, använder du först Excel Online på OneDrive för att skapa en arbetsbok. Sedan skapar en anslutning till den från din app.

Samlingar av datakällor kan dock skapas och ändras i en app, men de är bara tillfälliga.

Visa en eller flera poster

I diagrammet ovan visas informationsflödet när en app läser informationen i en datakälla:

  • Informationen lagras och delas via en lagringstjänst (i det här fallet en SharePoint-lista på en Office 365-plats).
  • En anslutning gör informationen tillgänglig för appen. Anslutningen tar hand om autentiseringen så att användaren får åtkomst till informationen.
  • När appen startas eller funktionen Uppdatera används, hämtas information från anslutningen till en datakälla i appen för lokal användning.
  • Formler som används för att läsa informationen och visa den, styr vad användaren kan se. Du kan visa posterna i en datakälla med hjälp av ett galleri på en skärm och koppla egenskapen Items till datakällan: Gallery.Items = DataSource. Du kopplar kontroller i galleriet till galleriet med hjälp av kontrollegenskapen Default.
  • Datakällan är också en tabell. Det innebär att du kan använda funktionerna Filter, Sort, AddColumns m.fl. för att förfina och utöka datakällan innan den används som helhet. Du kan också använda funktionerna Lookup, First, Last m.fl. när du vill arbeta med enskilda poster.

Ändra en post

I föregående avsnitt visade vi hur man läser en datakälla. Observera att pilarna i diagrammet ovan bara är ett av sätten. Ändringar i en datakälla skickas inte tillbaka via samma formler som datan hämtades med. Nya formler används i stället. Oftast används en annan skärm för att redigera en post än för att bläddra bland poster, särskilt på en mobil enhet.

Observera att om du vill ändra en befintlig post i en datakälla, måste posten ursprungligen komma från den datakällan. Posten kan ha färdats via ett galleri, en sammanhangsvariabel och ett antal formler, men dess ursprung ska kunna spåras tillbaka till datakällan. Detta är viktigt eftersom ytterligare information överförs tillsammans med posten för att unikt kunna identifiera den, vilket säkerställer att du ändrar rätt post.

I diagrammet ovan visas informationsflödet när man uppdaterar en datakälla:

  • Kontrollen Redigera formulär innehåller en behållare för indatakort. Den består av användarens indatakontroller, till exempel en textinmatningskontroll eller ett skjutreglage. Egenskaperna DataSource och Item används för att identifiera posten som ska redigeras.
  • Varje indatakort har en Default-egenskap som vanligen är inställd på fältet i formulärets ThisItem-post. Kontrollerna på indatakortet hämtar sedan sina indatavärden från Default. Vanligtvis behöver du inte ändra det här.
  • Varje indatakort visar en egenskap för Update. Egenskapen mappar användarens indata till ett specifikt fält i posten som skriver tillbaka till datakällan. Vanligtvis behöver du inte ändra det här.
  • Användaren kan använda en knapp eller en bildkontroll på skärmen för att spara ändringar i posten. Formeln OnSelect i kontrollen anropar funktionen SubmitForm som utför arbetet. SubmitForm läser in alla Update-egenskaper på korten och använder dem när den skriver tillbaka till datakällan.
  • Ibland uppstår det problem. En nätverksanslutning kanske ligger nere, eller en verifieringskontroll av tjänsten görs som appen inte kände till. Egenskaperna Error och ErrorKind i formulärkontrollen gör informationen tillgänglig, så att du kan visa den för användaren.

Om du vill ha en mer detaljerad kontroll över processen kan du också använda funktionen Patch och Errors. Kontrollen Redigera formulär visar egenskapen Update, där du kan läsa värdena för fälten i formuläret. Du kan också använda den här egenskapen för att anropa en anpassad anslutningsapp i en anslutning, vilket helt kringgår funktionerna Patch och SubmitForm.

Verifiering

Innan du gör en ändring i en post bör göra appen allt den kan för att se till att ändringen kommer att godkännas. Det finns två skäl till detta:

  • Omedelbar feedback till användaren. Det är bäst att korrigera problemet direkt när det uppstår, medan användaren kommer ihåg vad som hände. Röd text kan med bokstavligen varje tangenttryckning visas för att identifiera ett problem med inmatningen.
  • Mindre nätverkstrafik och kortare svarstid för användarna. Ju fler problem som identifieras i appen, ju färre konversationer över nätverket för att identifiera och lösa problem. Varje konversation tar tid och användarna måste vänta innan de kan gå vidare.

PowerApps erbjuder två verktyg för verifiering:

  • Datakällan kan ge information om vad som är och är inte giltigt. Till exempel kan tal ha lägsta och högsta värden och en eller flera poster kan krävas. Du kan komma åt den här informationen med funktionen DataSourceInfo.
  • Funktionen Validate använder samma information för att kontrollera värdet för en enda kolumn eller för en hel post.

Felhantering

Bra, du har verifierat din post. Det är dags att uppdatera posten med Patch!

Men det kan dock fortfarande finnas problem kvar. Nätverket är inte tillgängligt, verifiering av tjänsten misslyckades, eller användaren har inte rätt behörigheter, bara för att nämna några möjliga fel som din app kan stöta på. Den måste svara på rätt sätt vid felsituationer, ge feedback till användaren och ge dem möjlighet att göra rätt.

När det uppstår fel med en datakälla registrerar din app automatiskt felinformationen och gör den tillgänglig via funktionen Errors. Felen är associerade med de poster som hade problem. Om problemet är något som användaren kan korrigera, till exempel ett verifieringsproblem, kan de skicka posten igen och felen kommer att tas bort.

Om ett fel inträffar när en post skapas med Patch eller Collect, finns det ingen post att associera felet med. I det här fallet returneras en tom post av Patch som kan användas som argument till Errors. Fel vid skapande rensas med nästa åtgärd.

Funktionen Errors returnerar en tabell med felinformation. Den här informationen kan innehålla kolumninformation, om felet kan härledas till en viss kolumn. Använd felmeddelanden på kolumnnivå i etikettkontroller som ligger nära där kolumnen är placerad på redigeringsskärmen. Använd felmeddelanden på postnivå när kolumnen i feltabellen är tom och är placerad nära knappen Spara för hela posten.

Arbeta med stora datakällor

När du skapar rapporter från stora datakällor (kanske miljontals poster) vill du minimera nätverkstrafiken. Anta att du vill rapportera om alla kunder som har statuskoden ”Platina” i New York City. Och att kundtabellen innehåller miljontals poster.

Du vill inte ha in dessa miljoner kunder i din app och därefter välja de som är relevanta. Du vill i stället välja vad som händer i molntjänsten där tabellen lagras och därefter endast skicka de valda posterna över nätverket.

De flesta av de funktioner som du kan använda för att välja poster kan vara delegerade, vilket innebär att de körs i molntjänsten. Du kan lära dig hur du gör detta genom att läsa mer om Delegering.

Samlingar

Samlingar är en särskild typ av datakälla. De är lokala i appen och säkerhetskopieras inte av någon anslutning till en tjänst i molnet. Det innebär att informationen inte kan delas mellan enheter hos samma användare eller mellan användare. De fungerar som andra datakällor, med några undantag:

  • Samlingar kan skapas dynamiskt med funktionen Collect. De behöver inte fastställas i förväg som anslutningsbaserade datakällor måste göras.
  • Kolumner i en samling kan ändras när som helst med funktionen Collect.
  • Samlingar tillåter dubblettposter. Mer än en kopia av samma post kan finnas i en samling. Funktioner som t.ex. Remove kommer att användas på den första matchningen som hittas, såvida inte argumentet Alla har angetts.
  • Du kan använda funktionerna SaveData och LoadData för att spara och läsa in en kopia av samlingen. Informationen lagras på en privat plats som andra användare, appar och enheter inte kan komma åt.
  • Du kan använda kontrollerna Export och Import för att spara och läsa in en kopia av samlingen i en fil som användaren kan interagera med.

Mer information om hur du arbetar med en samling som en datakälla finns i Skapa och uppdatera en samling.

Samlingar används ofta för att lagra globala tillstånd för appen. Se i Arbeta med variabler vilka tillgängliga alternativ som finns för att hantera tillstånd.