Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Power Apps använder de flesta kanvas-appar extern information som lagras i molntjänster och kallas datakällor. Ett vanligt exempel är en tabell i en Excel-fil som lagras i OneDrive. 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 arbetar med tabelldatakällor, inklusive hur du hanterar delegering, felhantering och vanliga problem.
Det är enkelt att skapa en app som utför grundläggande läsning och skrivning till en datakälla. Men ibland vill du ha mer kontroll över hur data flödar in och ut ur din app. Den här artikeln beskriver hur funktionerna Patch, DataSourceInfo, Validate och Errors ger mer kontroll.
Typer av datakällor
Datakällor kan anslutas till en molntjänst eller vara lokala för 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, listor som skapats med Hjälp av Microsoft-listor, SharePoint-bibliotek, SQL-tabeller och många andra format som kan lagras i molntjänster som OneDrive, DropBox och SQL Server.
Andra datakällor än tabeller är e-post, kalendrar, Twitter och meddelanden, men i den här artikeln diskuteras inte dessa andra typer av datakällor.
Lokala datakällor
Med kontrollerna Galleri, Visningsformulär och Redigera formulär kan du skapa en app som läser och skriver data från en datakälla. Information om hur du kommer igång finns i Förstå dataformulär.
När du ber Power Apps att skapa en app från data används dessa kontroller. I bakgrunden använder appen en intern tabell för att lagra och manipulera data som kommer från datakällan.
En särskild typ av datakälla är samlingen, som är lokal för appen och inte backas upp av en anslutning till en tjänst i molnet. Därför kan informationen inte delas mellan enheter för samma användare eller mellan användare. Samlingar kan läsas in och sparas lokalt.
Typer av tabeller
Tabeller som är interna för en app är fasta värden, precis som ett tal eller en sträng är ett värde. Interna tabeller lagras inte någonstans, men finns i appens minne. Du kan inte ändra strukturen och data i en tabell direkt. Det du kan göra i stället är att skapa en ny tabell via en formel: du använder den formeln för att göra en ändrad kopia av den ursprungliga tabellen.
Externa tabeller lagras i en datakälla för senare hämtning och delning. Power Apps tillhandahåller "anslutningar" för att läsa och skriva lagrade data. I en anslutning kan du komma åt flera informationstabeller. Du kan välja vilka tabeller som ska användas i din app och var och en blir en separat datakälla.
Mer information finns i Arbeta med tabeller om interna tabeller, men även 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 Power Apps-tabell. Precis som i en intern tabell har varje datakälla poster, kolumner och egenskaper som du kan använda i formler. Dessutom:
Datakällan har samma kolumnnamn och datatyper som den underliggande tabellen i anslutningen.
Note
För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg ersätter Power Apps blankstegen med "_x0020_". Till exempel visas "Kolumnnamn" i SharePoint eller Excel som "Column_x0020_Name" i Power Apps när det visas i datalayouten eller används i en formel.
Datakällan läses in automatiskt från tjänsten när appen läses in. Du kan tvinga data att uppdateras med hjälp av funktionen Uppdatera .
När användarna kör en app kan de skapa, ändra och ta bort poster och skicka tillbaka ändringarna till den underliggande tabellen i tjänsten.
Funktionerna DataSourceInfo, Defaults och Validate innehåller information om den datakälla som du kan använda för att optimera användarupplevelsen.
Skapa datakällor
Power Apps 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 du en anslutning till den från din app.
Insamlingsdatakällor kan dock skapas och ändras i en app, men de är bara tillfälliga.
Visa en eller flera poster
Det här diagrammet visar 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 Microsoft Lists eller SharePoint Online).
- En anslutning gör den här informationen tillgänglig för appen. Anslutningen tar hand om användarens autentisering för att komma åt informationen.
- När appen startas eller uppdateringsfunktionen trycks ned hämtas information från anslutningen till en datakälla i appen för lokal användning.
- Formler används för att läsa informationen och exponera den i kontroller som användaren kan se. Du kan visa poster för en datakälla med hjälp av ett galleri på en skärm och koppla egenskapen Objekt till datakällan: Gallery.Items = DataSource. Du kopplar kontroller i galleriet till galleriet med hjälp av kontrollernas standardegenskap .
- Datakällan är också en tabell. Du kan därför använda Filter, Sort, AddColumns och andra funktioner för att förfina och utöka datakällan innan du använder den som helhet. Du kan också använda funktionerna Lookup, First, Last och andra för att arbeta med enskilda poster.
Ändra en post
Pilarna i föregående diagram är ett sätt. Ändringar i en datakälla skickas inte tillbaka via samma formler som data hämtades i. I stället används nya formler. Ofta 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.
Om du vill ändra en befintlig post i en datakälla måste posten ursprungligen ha kommit från datakällan. Posten kan visas i ett galleri, en kontextvariabel och valfritt antal formler, men dess ursprung bör kunna spåras tillbaka till datakällan. Extra information skickas med dataposten som unikt identifierar den, vilket säkerställer att du ändrar rätt datapost.
Det här diagrammet visar informationsflödet för att uppdatera en datakälla:
- En redigeringsformulärkontroll tillhandahåller en container för indatakort som består av användarinmatningskontroller, 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 är inställd på fältet i formulärets ThisItem-post. Kontrollerna i indatakortet tar sina indatavärden från Standard. Normalt behöver du inte ändra den här standardinställningen.
- Varje indatakort exponerar en uppdateringsegenskap. Den här egenskapen mappar användarens indata till ett specifikt fält i posten för att skriva tillbaka till datakällan. Normalt behöver du inte ändra den här egenskapen.
- Med en knapp eller en bildkontroll på skärmen kan användaren spara ändringar i posten. OnSelect-formeln för kontrollen anropar funktionen SubmitForm för att utföra det här arbetet. SubmitForm läser alla uppdateringsegenskaper för korten och skriver tillbaka till datakällan.
- Ibland finns det problem. En nätverksanslutning kan vara nere eller så görs en valideringskontroll av tjänsten som appen inte kände till. Egenskaperna Fel och ErrorKind för formulärkontrollen gör den här informationen tillgänglig, så att du kan visa den för användaren.
Om du vill ha mer detaljerad kontroll över processen kan du också använda funktionen Patch och Errors . Kontrollen Redigera formulär exponerar en uppdateringsegenskap så att 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 anslutning i en anslutning, vilket helt kringgår funktionerna Patch och SubmitForm.
Validering
Innan du gör en ändring i en post bör appen göra vad den kan för att se till att ändringen är acceptabel. Det finns två skäl till att kontrollera:
- Omedelbar feedback till användaren. Den bästa tiden att åtgärda ett problem är rätt när det händer, när det är färskt i användarens sinne. Bokstavligen med varje pek- eller tangenttryckning kan röd text visas som identifierar ett problem med deras post.
- Mindre nätverkstrafik och mindre svarstid för användare. Fler problem som identifieras i appen innebär färre konversationer över nätverket för att identifiera och lösa problem. Varje konversation tar tid under vilken användaren måste vänta innan de kan gå vidare.
Power Apps erbjuder två verktyg för validering:
- Datakällan kan ge information om vad som är och inte är giltigt. Tal kan till exempel 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 enskild kolumn eller en hel post.
Felhantering
Nu när du har verifierat posten uppdaterar du posten med Patch.
Men det kan fortfarande finnas ett problem. Nätverket är nere, verifieringen av tjänsten misslyckades eller så har användaren inte rätt behörigheter, bara för att nämna några av de möjliga fel som din app kan stöta på. Din app måste svara korrekt på felsituationer, ge feedback till användaren och ett sätt för dem att göra det rätt.
När fel uppstår med en datakälla registrerar appen automatiskt felinformationen och gör den tillgänglig via funktionen Fel . Fel är kopplade till de poster som hade problemen. Om problemet är något som användaren kan åtgärda, till exempel ett valideringsproblem, kan de skicka posten igen och felen rensas.
Om ett fel uppstår när en post skapas med Patch eller Collect finns det ingen post att associera några fel med. I det här fallet returneras tom av Patch och kan användas som rekordargument till Fel. Fel vid skapande rensas vid nästa operation.
Funktionen Fel returnerar en tabell med felinformation. Den här informationen kan innehålla kolumninformationen om felet kan hänföras till en viss kolumn. Använd felmeddelanden på kolumnnivå i etikettkontroller som ligger nära den plats där kolumnen finns på redigeringsskärmen. Använd felmeddelanden på postnivå där kolumnen i feltabellen är tom på en plats 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 statuskodenPlatinum i New York City. Tabellen Kunder innehåller miljontals poster.
Du vill inte föra in dessa miljontals kunder i din app och sedan välja de som du vill ha. Valet bör ske i molntjänsten där tabellen lagras, där du skickar de valda posterna via nätverket.
Många, men inte alla, funktioner som du kan använda för att välja poster kan delegeras, vilket innebär att de körs i molntjänsten. Läs mer i Delegering.
Viktigt!
Som standardinställning hämtar Power Apps endast de första 500-posterna från en datakälla. Du kan höja den här gränsen till högst 2 000 poster i appinställningarna. Om datakällan innehåller fler poster och formeln inte är helt delegerbar visas en gul varningstriangel för delegering i Power Apps Studio. När du ser den här varningen kanske din app inte returnerar alla matchande poster vid körning. För att undvika dataförlust i stora datamängder använder du delegerbara funktioner som Filter och Sort med datakällor som stöds, eller överväg att använda Microsoft Dataverse, som har bredare delegeringsstöd.
Identifiera och lösa delegeringsvarningar
En delegeringsvarning visas ofta i formelfältet som en gul triangel när Power Apps inte kan skicka en formelåtgärd till datakällan, men inte alla icke-delegerade fall visar den här varningen. Så här kontrollerar du om en formel kan delegeras:
- Välj den kontroll eller formel som bearbetar datakällan.
- Leta efter en gul triangelikon i Power Apps Studio.
- Hovra över triangeln för att läsa delegeringsvarningen.
Så här löser du delegeringsproblem:
- Ersätt funktioner som inte kan delegeras (till exempel Search för textkolumner i SharePoint) med delegerbara alternativ där det är möjligt.
- Växla till Microsoft Dataverse som datakälla för det bredaste delegeringsstödet.
- Använd vyer på serversidan (för SharePoint) eller lagrade procedurer (för SQL) för att förfiltrera data.
- Om du vill felsöka delegeringsproblem som inte flaggas använder du Live Monitor under Avancerade verktyg för att inspektera frågorna Power Apps skickar och data som returneras från varje datakälla. Mer information finns i Felsökning av duk-appar med Live Monitor.
Collections
Samlingar är en särskild typ av datakälla. De är lokala för appen och stöds inte av en anslutning till en tjänst i molnet. Därför kan informationen inte delas mellan enheter för samma användare eller mellan användare.
Samlingar fungerar som alla andra datakällor, med några undantag:
- Samlingar kan skapas dynamiskt med funktionen Collect . De behöver inte upprättas i förväg, som anslutningsbaserade datakällor gör.
- Kolumnerna i en samling kan ändras när som helst med hjälp av funktionen Collect .
- Samlingar tillåter duplicerade poster. Mer än en kopia av samma datapost kan finnas i en samling. Funktioner som Ta bort fungerar på den första matchningen som de hittar, 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 igen. Informationen lagras på en privat plats som andra användare, appar eller enheter inte kan komma åt.
- Du kan använda kontrollerna Exportera och importera för att spara och läsa in en kopia av samlingen på nytt till en fil som användaren kan interagera med.
Mer information om hur du arbetar med en samling som datakälla finns i skapa och uppdatera en samling.
Samlingar används ofta för att lagra globalt tillstånd för appen. Se Arbeta med variabler för de alternativ som är tillgängliga för att hantera tillstånd.
Felsöka vanliga problem med datakällor
Mitt galleri visar bara 500 registreringar
Som standard hämtar Power Apps endast de första 500 posterna från en datakälla. Om galleriet verkar sakna poster har du förmodligen ett delegeringsproblem. Kontrollera om det finns en gul triangelvarning i galleriets objektformel och kontrollera att filterformeln som du använder är delegerbar för datakällan. Se Arbeta med stora datakällor för lösningssteg.
Kolumnnamn visar x0020 i mina formler
Om SharePoint list eller Excel-tabell har kolumnnamn med blanksteg (till exempel Min kolumn), ersätter Power Apps blanksteg med _x0020_ i formler (till exempel MyTable.My_x0020_Column). Detta är ett förväntat beteende. Byt namn på kolumnen i källdata för att ta bort blanksteg eller fortsätt att använda det kodade namnet i formler.
Datakällans ändringar visas inte i min app
Om underliggande data ändras externt (till exempel en post har lagts till i SharePoint) identifierar appen inte ändringar automatiskt när den körs. Använd funktionen Uppdatera för att tvinga appen att läsa in aktuella data igen. Lägg till exempel till en knapp med OnSelect = Refresh(MyDataSource).
När ska jag använda Patch i stället för SubmitForm?
Använd SubmitForm när du har en redigeringsformulärkontroll – den hanterar validering, fältmappning och felvisning automatiskt. Använd Patch när du behöver:
- Uppdatera en post utan formulärstyrning.
- Uppdatera endast specifika fält utan att påverka andra.
- Skriv till flera datakällor i en åtgärd.
- Skapa en helt anpassad upplevelse för sparande.