Cloud SolutionsPowerApps op een hoger niveau met Flow
PowerAppsPowerApps maakt het voor een breed publiek mogelijk om zelf applicaties te ontwikkelen. Ik ben hier eerder tijdens het blog de Power van PowerApps op ingegaan. Het is aan te raden deze eerst te lezen indien u nog geen ervaring heeft met het bouwen van PowerApps. In dit blog ga ik dieper op de mogelijkheden in, door te tonen dat met PowerApps ook complexere oplossingen kunnen worden gebouwd.
Eén van de krachten van PowerApps is de verbinding met externe databronnen; data die wordt onttrokken van buitenaf is eenvoudig weer te geven binnen een PowerApp.  Hierdoor kan een beroep worden gedaan op de rekenkracht van externe applicaties die meer mogelijkheden bieden dan PowerApps. Deze bredere context wordt in dit blog beschreven aan de hand van een casus waarbij gebruikers een overzicht willen inzien van de inventaris in een magazijn.

De casus

De organisatie ‘Delta-O’ verkoopt een grote variatie aan producten. Bij de verkoop of aanvulling van producten wordt dit ingevoerd in een apart softwarepakket. Deze aanpassingen worden ook direct verwerkt in een lijst die is opgeslagen binnen een Azure Table Storage, een type database binnen Azure.

De verouderde applicatie en de Azure Table Storage zijn niet altijd en op elk apparaat snel beschikbaar. Daarom is er een applicatie nodig waarbij een gebruiker dit overzicht kan inzien. Dit wordt dan mogelijk gemaakt door het invoeren en zoeken van een productnaam. De gebruiker krijgt hierna de gevraagde gegevens te zien met alle bijbehorende informatie, zoals het aantal artikelen.

Flow

Toevoegen van de Flow connector

De benodigde data staat in een Azure Table Storage. Het is niet mogelijk een PowerApp direct te verbinden met deze externe databron. Hiervoor kan gebruik gemaakt worden van Flow.
Daardoor wordt de zoekopdracht ook uitgevoerd in Flow, die data teruggeeft aan de PowerApp. Het verwerken van de zoekopdracht in Flow heeft het voordeel dat de tijd die het kost om te zoeken niet bepalend hoeft te zijn voor de snelheid van de PowerApp.

Om een Flow als connectie toe te voegen wordt een knop in de PowerApp geselecteerd, om daarna binnen de ribbon bij actie Flows aan te klikken. Nadat de Flow is toegevoegd wordt deze automatisch deel van de formule in de OnSelect eigenschap van de knop.

PowerApps

Het ophalen van data uit de Azure Table Storage

De Flow wordt vanuit de PowerApp gestart door op de knop te klikken. In de Flow is een vervolgstap het ophalen van de data uit een Azure Table Storage. Dit is mogelijk door gebruik te maken van de functie GetEntities. Er kan worden gefilterd op specifieke woorden, waarbij alleen de waarden die overeen komen vanuit de Azure Table Storage worden geretourneerd. Hierbij moet de kanttekening worden geplaatst dat dit alleen werkt als de waarde exact overeen komt. Voor het zoeken met vergelijkbare waarden zijn complexere formules nodig en is een Azure Table Storage wellicht niet geschikt.

Voor het gebruik van zoektermen moet een ingevoerde waarde uit de PowerApp worden gebruikt in Flow. Dit kan simpelweg door “ask in PowerApps” aan te geven als variabele in Flow. In PowerApps wordt er nu in de formule ‘PowerApps-knop’.Run() gevraagd naar een waarde tussen de haakjes. De waarde kan worden gelijkgesteld aan het tekstveld dat de gebruiker moet invoeren in PowerApps.

Nadat in Flow de data is opgehaald op basis van een zoekterm, moet deze worden geretourneerd naar de PowerApp. Daarvoor wordt bij de volgende stap in Flow gebruikt gemaakt van de “response” functie. Binnen deze functie wordt een Response body JSON Schema gevraagd. Deze kan worden opgehaald door de Flow te testen. De uitkomst van de Flow kan worden gekopieerd en geplakt in het veld dat verschijnt na het klikken op Use Sample Payload to generate schema. Door dit in te stellen wordt de opgehaalde data correct doorgegeven aan de PowerApp.

PowerApps op een hoger niveau met Flow

Data verwerken in de PowerApp

De data kan worden getoond door het resultaat op te slaan in een collectie. De aangemaakte collectie kan daarna zichtbaar worden gemaakt voor de gebruiker middels een Gallery.
Data verwerken in PowerApps

In bovenstaande casus is aangegeven op welke wijze een PowerApp externe bronnen kan oproepen en daarbij gebruik kan maken van mogelijkheden buiten het product zelf. In dit geval betreft dit Flow en Azure Table Storage, maar daarnaast bestaat nog een breed scala van andere mogelijkheden.

Wil je gebruik maken van de complexere mogelijkheden van PowerApps ? Neem voor meer informatie contact op met mijn collega Eric Bolten via 085 – 487 52 20.

Erik de Beus, Cloud Consultant