#

Voor de meeste PowerApps-apps wordt externe informatie gebruikt die is opgeslagen in cloudservices. Deze worden Gegevensbronnen genoemd. Een veel voorkomend voorbeeld is bijvoorbeeld een tabel in een Excel-bestand die is opgeslagen in OneDrive voor Bedrijven. Apps krijgen toegang tot deze gegevensbronnen via Verbindingen.

In dit artikel worden de verschillende soorten gegevensbronnen besproken en het werken met gegevensbronnen van tabellen.

Het is gemakkelijk om een app te maken die basale lees- en schrijfactiviteiten naar een gegevensbron kan uitvoeren. Maar soms wilt u meer controle over hoe gegevens in en uit uw app stromen. In dit artikel wordt beschreven hoe de functies Patch, DataSourceInfo, Validate en Errors u meer controle bieden.

Soorten gegevensbronnen

##

Gegevensbronnen kunnen worden verbonden met een cloudservice of lokaal in een app staan.

Verbonden gegevensbronnen

De meestvoorkomende gegevensbron is een tabel, die u kunt gebruiken om informatie op te halen en op te slaan. U kunt verbindingen met gegevensbronnen gebruiken om gegevens te lezen en schrijven in Microsoft Excel-werkmappen, SharePoint-lijsten, SQL-tabellen en nog veel meer. U kunt de gegevens vervolgens opslaan in cloudservices zoals OneDrive voor Bedrijven, DropBox, SQL Server, enzovoort.

Voorbeelden van andere gegevensbronnen zijn e-mail, agenda's, Twitter en meldingen. Deze gegevensbronnen worden hier echter niet behandeld.

Lokale gegevensbronnen

Met de besturingselementen Galerie, Formulier weergeven en Formulier bewerken kunt u eenvoudig een app maken die gegevens leest uit en schrijft naar een gegevensbron. Lees het artikel Gegevensformulieren begrijpen om aan de slag te gaan.

Als u PowerApps vraagt een app van gegevens te maken, worden deze besturingselementen gebruikt. Achter de schermen maakt de app gebruik van een interne tabel voor het opslaan en manipuleren van de gegevens die afkomstig zijn uit de gegevensbron.

Een speciaal soort gegevensbron is de Verzameling. Deze staat lokaal in de app en wordt niet ondersteund door een verbinding met een service in de cloud. Daarom kunnen de gegevens niet worden gedeeld met apparaten voor dezelfde gebruiker of tussen gebruikers. Verzamelingen kunnen worden geladen en lokaal opgeslagen.

Soorten tabellen

Tabellen die intern in een PowerApps-app staan zijn vaste waarden, net zoals een getal of een tekenreeks een waarde is. Interne tabellen worden niet overal opgeslagen maar zijn alleen aanwezig in het geheugen van uw app. U kunt de structuur en gegevens van een tabel niet rechtstreeks wijzigen. U kunt in plaats daarvan een nieuwe tabel maken via een formule: u gebruikt die formule om een aangepaste kopie van de oorspronkelijke tabel te maken.

Externe tabellen worden opgeslagen in een gegevensbron om later op te halen en te delen. PowerApps bevat "verbindingen" om opgeslagen gegevens te lezen en te schrijven. Binnen een verbinding kunt u meerdere tabellen met gegevens openen. U selecteert welke tabellen u wilt gebruiken in uw app en elke tabel wordt een afzonderlijke gegevensbron.

Voor meer informatie leest u Werken met tabellen, dat verder ingaat op interne tabellen, maar het is ook van toepassing op externe tabellen die zich in een cloudservice bevinden.

Werken met tabellen

U kunt gegevensbronnen van tabellen op dezelfde manier gebruiken als u een interne PowerApps-tabel. Net als een interne tabel heeft elke gegevensbron records, kolommen en eigenschappen die u in formules kunt gebruiken. Daarnaast:

  • De gegevensbron bevat dezelfde kolomnamen en gegevenstypen als de onderliggende tabel in de verbinding.

    Opmerking: Kolomnamen met spaties in gegevensbronnen van Excel of SharePoint worden in PowerApps vervangen door '_x0020_'. 'Kolom twaalf' in SharePoint of Excel wordt bijvoorbeeld weergegeven als 'Kolom_x0020_twaalf' in PowerApps wanneer de naam wordt weergegeven in de gegevensindeling of wordt gebruikt in een formule.

  • De gegevensbron wordt automatisch uit de service geladen wanneer de app wordt geladen. U kunt de gegevens geforceerd vernieuwen met behulp van de functie Refresh.

  • Wanneer gebruikers een app uitvoeren, kunnen zij records maken, wijzigen en verwijderen, en die wijzigingen terugkoppelen naar de onderliggende tabel in de service.

    • Records kunnen worden gemaakt met de functies Patch en Collect.
    • Records kunnen worden gewijzigd met de functies Patch, Update en UpdateIf.
    • Records kunnen worden verwijderd met de functies Remove en RemoveIf.
    • Fouten die optreden bij het werken met een gegevensbron zijn beschikbaar via de functie Errors.
  • De functies DataSourceInfo, Defaults en Validate bevatten informatie over de gegevensbron die u kunt gebruiken voor het optimaliseren van de gebruikerservaring.

Gegevensbronnen maken

PowerApps kan niet worden gebruikt om een verbonden gegevensbron te maken of de structuur te wijzigen. De gegevensbron moet al ergens in een service bestaan. Bijvoorbeeld, voor het maken van een tabel in een Excel-werkmap die is opgeslagen op OneDrive, moet u eerst Excel Online op OneDrive gebruiken om een werkmap te maken. Vervolgens maakt u er een verbinding naartoe vanuit uw app.

Gegevensbronnen voor verzamelingen kunnen echter worden gemaakt en gewijzigd in een app, maar deze gegevensbronnen zijn alleen tijdelijk.

Een of meer records weergeven

Het bovenstaande diagram toont de informatiestroom wanneer een app de gegevens in een gegevensbron leest:

  • De informatie wordt opgeslagen en gedeeld via een opslagservice (in dit geval een SharePoint-lijst van een Office 365-site).
  • Via een verbinding wordt deze informatie beschikbaar voor de app. De verbinding zorgt voor verificatie van de gebruiker voor toegang tot de gegevens.
  • Wanneer de app wordt gestart of de functie Refresh wordt gebruikt, worden er gegevens opgehaald vanuit de verbinding naar een gegevensbron voor lokaal gebruik in de app.
  • Formules worden gebruikt om de informatie te lezen en weer te geven in de besturingselementen die de gebruiker kan zien. U kunt de records van een gegevensbron weergeven met behulp van een galerie op een scherm en de eigenschap Items te verbinden met de gegevensbron: Gallery.Items = DataSource. U kunt besturingselementen binnen de galerie en aan de galerie verbinden met behulp van de eigenschap Default van het besturingselement.
  • De gegevensbron is ook een tabel. U kunt dus de functies Filter, Sort, AddColumns en andere functies gebruiken om de gegevensbron te verfijnen en te verbeteren voordat u deze als geheel gebruikt. U kunt ook de functies Lookup, First, Last en andere functies gebruiken om te werken met afzonderlijke records.

Een record wijzigen

In de vorige sectie hebt u gezien hoe u een gegevensbron moet lezen. Houd er rekening mee dat de pijlen in het bovenstaande diagram één richting hebben. Wijzigingen aan een gegevensbron worden niet via dezelfde formules tegengehouden waarmee de gegevens zijn opgehaald. In plaats daarvan worden nieuwe formules gebruikt. Vaak wordt een andere scherm gebruikt voor het bewerken van een record dan voor het zoeken naar records, met name op een mobiel apparaat.

Voor het wijzigen van een bestaande record van een gegevensbron, moet de record oorspronkelijk afkomstig zijn van de gegevensbron. De record kan door een galerie, contextvariabele en een willekeurig aantal formules zijn gegaan, maar de oorsprong moet kunnen worden teruggeleid naar de gegevensbron. Dit is belangrijk omdat er meer informatie wordt verzonden met de record waarmee deze kan worden aangeduid, wat ervoor zorgt dat u de juiste record wijzigt.

Het bovenstaande diagram toont de informatiestroom voor het bijwerken van een gegevensbron:

  • Een besturingselement Formulier bewerken biedt een container voor invoerkaarten, die bestaan uit besturingselementen voor gebruikersinvoer, zoals een besturingselement voor tekstinvoer of een schuifregelaar. De eigenschappen DataSource en Item worden gebruikt voor identificatie van de record om deze te kunnen bewerken.
  • Elke invoerkaart bevat een eigenschap Standaard die meestal is ingesteld op het veld van de record ThisItem van het formulier. De besturingselementen in de invoerkaart halen vervolgens hun invoerwaarden uit Standaard. Normaal gesproken hoeft u dit niet te wijzigen.
  • Elk invoerkaart toont een eigenschap Update. Deze eigenschap wijst de invoer van de gebruiker toe aan een bepaald veld van de record voor terugschrijven naar de gegevensbron. Normaal gesproken hoeft u dit niet te wijzigen.
  • Een knop of een afbeeldingsbesturingselement op het scherm stelt de gebruiker in staat om de wijzigingen op te slaan in de record. De formule OnSelect van het besturingselement zorgt ervoor dat de functie SubmitForm dit uitvoert. SubmitForm leest alle Update-eigenschappen van de kaarten en gebruikt dit voor terugschrijven naar de gegevensbron.
  • Soms zullen er problemen optreden. Een netwerkverbinding kan niet actief zijn of er wordt door de service een validatiecontrole uitgevoerd waar de app niets van wist. De eigenschappen Fout en ErrorKind van het formulierbesturingselement stellen deze informatie beschikbaar zodat u deze aan de gebruiker kunt weergeven.

Voor gedetailleerdere controle over het proces kunt u ook de functies Invullen en Fouten gebruiken. Het besturingselement Formulier bewerken toont een Updates-eigenschap zodat u de waarden van de velden in het formulier kunt lezen. U kunt deze eigenschap ook gebruiken om een aangepaste connector voor een verbinding aan te roepen, waarbij u volledig buiten de functies Patch en SubmitForm om werkt.

Validatie

Voordat u een wijziging aanbrengt aan een record, moet de app eerst al het mogelijke doen om ervoor te zorgen dat de wijziging kan worden geaccepteerd. Hiervoor zijn twee redenen:

  • Onmiddellijke feedback aan de gebruiker. Het beste moment om een probleem te verhelpen is wanneer het gebeurt, wanneer het nog vers in het geheugen van de gebruiker ligt. Bij letterlijk elke tik of toetsaanslag kan er rode tekst worden weergegeven die een probleem identificeert met de plaatsing.
  • Minder netwerkverkeer en minder gebruikerslatentie. Meer problemen gedetecteerd in de app betekent minder conversaties via het netwerk voor het detecteren en oplossen van problemen. Elke conversatie kost tijd waarin de gebruiker moet wachten voordat hij verder kan.

PowerApps biedt twee hulpprogramma's voor validatie:

  • De gegevensbron kunt informatie bieden over wat wel en niet geldig is. Getallen kunnen bijvoorbeeld minimale en maximale waarden hebben en er kunnen een of meer vermeldingen zijn vereist. U kunt toegang krijgen tot deze gegevens met de functie DataSourceInfo.
  • De functie Validate maakt gebruikt van deze informatie om de waarde van één kolom of een hele record te controleren.

Foutafhandeling

Geweldig, u hebt uw record gevalideerd. Tijd om die record met Patch bij te werken.

Maar helaas is er nog steeds mogelijk een probleem. Het netwerk is niet beschikbaar, validatie van de service is mislukt, of de gebruiker heeft niet de juiste machtigingen: een aantal mogelijke fouten die uw app kan tegenkomen. De app moet op de juiste wijze op situaties reageren, feedback geven aan de gebruiker en hem de mogelijkheid geven om het op te lossen.

Wanneer er fouten optreden met een gegevensbron, registreert uw app automatisch de gegevens van de fout en maakt deze beschikbaar via de functie Errors. Fouten worden gekoppeld aan de records waarbij problemen zijn opgetreden. Als het probleem iets is dat kan worden opgelost door de gebruiker, zoals een validatieprobleem, kan de gebruiker de record opnieuw verzenden en worden de fouten gewist.

Als er een fout optreedt bij het maken van een record met Patch of Collect is er geen record waarmee fouten kunnen worden gekoppeld. In dit geval wordt leeg geretourneerd door Patch en kan worden gebruikt als het record-argument voor Errors. Fouten bij het maken worden met de volgende bewerking gewist.

De functie Errors retourneert een tabel met gegevens van de fout. Deze informatie kan bestaan uit de kolomgegevens indien de fout kan worden toegekend aan een bepaalde kolom. Gebruik foutberichten op kolomniveau in labelbesturingselementen die zich bevinden vlak bij waar de kolom zich op het scherm Bewerken bevindt. Gebruik foutberichten op record-niveau waar de Kolom in de fouttabel leeg is, en zich op een locatie dicht bij de knop Opslaan voor de hele record bevindt.

Werken met grote gegevensbronnen

Wanneer u rapporten maakt van grote hoeveelheden gegevensbronnen (wel miljoenen records), dan wilt u netwerkverkeer zoveel mogelijk minimaliseren. Stel dat u wilt een rapport wilt over alle klanten die een StatusCode 'Platina' hebben in de stad New York. En dat uw klantentabel miljoenen records bevat.

U wilt die miljoenen klanten zeker niet in uw app laden en vervolgens kiezen welke u wilt. U wilt dat deze selectie in de cloudservice gebeurt waar de tabel wordt opgeslagen, en alleen de gekozen records via het netwerk verzenden.

U kunt veel, maar niet alle, functies voor het kiezen van records delegeren. Dit betekent dat deze worden uitgevoerd in de cloudservice. U kunt leren hoe u dit doe door te lezen over Delegering.

Verzamelingen

##

Verzamelingen zijn een speciaal soort gegevensbron. Deze staan lokaal in de app en worden niet ondersteund door een verbinding met een service in de cloud. Daarom kunnen de gegevens niet worden gedeeld met apparaten voor dezelfde gebruiker of tussen gebruikers. Zij werken net als elke andere gegevensbron, met enkele uitzonderingen:

  • Verzamelingen kunnen dynamisch worden gemaakt met de functie Collect. Deze hoeven niet van te voren tot stand te worden gebracht op de manier zoals bij gegevensbronnen op basis van een verbinding.
  • De kolommen van een verzameling kunnen op elk moment worden gewijzigd met behulp van de functie Collect.
  • Verzamelingen staan het bestaan van dubbele records toe. Er kan meer dan één exemplaar van dezelfde record bestaan in een verzameling. Functies zoals Remove worden uitgevoerd op de eerste overeenkomst die ze vinden, tenzij het argument Alle wordt opgegeven.
  • U kunt de functies SaveData en LoadData gebruiken om een kopie van de verzameling op te slaan en opnieuw te laden. De informatie wordt opgeslagen op een persoonlijke locatie die niet toegankelijk is voor andere gebruikers, apps of apparaten.
  • U kunt de besturingselementen Exporteren en Importeren gebruiken om een kopie van de verzameling naar een bestand waarmee de gebruiker kan communiceren op te slaan en opnieuw te laden.

Zie voor meer informatie over werken met een verzameling als een gegevensbron Een verzameling maken en bijwerken.

Verzamelingen worden vaak gebruikt voor het opslaan van de algemene status van de app. Zie Werken met variabelen voor de opties die beschikbaar zijn voor het beheren van de status.