6
May 2024
Dit is artikel is geschreven voor alle App-in-a-Day workshop deelnemers. Wij hebben gemerkt dat zo'n lange dag best wel overweldigend kan zijn. Zoveel informatie in een keer, dat kan natuurlijk niemand onthouden. Dat begrijpen we. In dit blog vatten we daarom de dag nog even samen.
De presentatie de we tijdens de workshop hebben gebruikt kan je hieronder bekijken. Belangrijk om te weten is dat onze eigen notities hier niet bij staan. Mocht je vergeten zijn wat de uitleg was bij specifieke slides, dan kun je in het vervolg van deze blog altijd het een ander nog teruglezen.
Zie je niks verschijnen hierboven, gebruik dan deze link om de presentatie te zien.
We begonnen de workshop met de Canvas Apps. Dit is één van de twee type apps die je kan maken met Power Apps. Canvas Apps gebruik je als je controle wilt hebben over de opmaak en logica van je app. Hiermee krijg je de ultieme mogelijkheden voor maatwerk.
Je bouwt Canvas Apps door bouwblokken, zoals invoervelden, knoppen, tekstvelden en datatabellen, te slepen naar het Canvas. Dit noemen we ook wel 'WYSIWYG (What-You-See-Is-What-You-Get) — oftewel, je ziet meteen het eindresultaat. Vervolgens kan je met 'excel-achtige' formules de logica van én tussen de bouwblokken bepalen. De formules kan je instellen wanneer er een bepaalde gebeurtenis plaatsvindt bij een bouwblok (bijvoorbeeld 'OnChange' of 'Visible'). Zo kan je het gebruiksgemak maximaliseren.
Naast logica en opmaak, is data (vaak) een belangrijk onderdeel. Met Canvas Apps kun je gebruikers data laten invoeren via die bouwblokken en data weergeven. Hiervoor moet je één of meer databronnen koppelen aan de bouwblokken in je app. Tijdens de workshop hadden we bijvoorbeeld een verbinding gemaakt met een Excel lijst. Andere bronnen zijn onder andere: een SharePoint lijst, een SQL database of Dataverse.
Op een vergelijkbare manier kun je ook eenvoudig Canvas Apps integreren in SharePoint Lijsten, websites, PowerBI Dashboards en Model-driven Apps. De app kun je vervolgens zowel op het web als op je mobiel gebruiken, al dan niet direct vanuit Microsoft Teams als je vanuit één centrale plek wilt werken.
Nadat we in de ochtend onze koffie app in Canvas Apps hadden gemaakt, doken we met zijn allen in Dataverse. Dit is de database oplossing van Microsoft die je kan gebruiken om tabulaire gegevens in op te slaan. Dataverse kan je zien als een slimmere en krachtigere variant van Excel — alleen werken we dan niet met sheets, maar met tabellen. We maken onderscheid tussen: standaard tabellen (al bestaand) en custom tabellen (zelf aanmaken).
In de labopdrachten maakten we een koppeling tussen de koffie-app en een custom tabel in Dataverse. Door dit te doen waren we in staat om gegevens (apparaat bestellingen) op te slaan. Zie dit als het fundament van de app. Door dit fundament vloeit er data door de app.
Naast Canvas Apps, bestaan er ook Model-driven Apps in Power Apps. Het grootste verschil tussen deze twee type apps is dat Canvas Apps meer gericht zijn op visuele elementen en Model-driven Apps meer gericht op data. Je bent bij Model-driven Apps dan ook meer bezig met het instellen van voorgekauwde bouwblokken, zoals formulieren, weergaves en navigatiemenu. Aan de opmaak kun je dan ook weinig tweaken. Dit noemt Microsoft ook wel component focused. Het doel is een functionele app zonder al te veel 'poespas' - zeker niet oneerbiedig bedoeld naar Canvas Apps.
Denk hierbij bijvoorbeeld aan een navigatiemenu. In Model-driven Apps zijn deze al volledig vormgegeven en een app bouwer hoeft alleen maar te bepalen welke elementen het navigatiemenu moet bevatten. Bij Canvas Apps zou je dit navigatiemenu nog helemaal zelf moeten vormgeven en instellen. Bij Tingk noemen we Canvas Apps daarom ook wel 'witte A4'tjes' waar je alles op mag tekenen en Model-driven Apps noemen we 'kleurplaten' die je alleen in hoeft te kleuren.
In de labopdrachten voegden we een Dataverse tabel toe aan het navigatiemenu. Op basis daarvan werd meteen een (standaard) weergave en invoerformulier van data getoond. Bij de weergave en het formulier hebben we volgorde en type data die zichtbaar zijn, aangepast. Zoals je waarschijnlijk is opgevallen, is de flexibiliteit ten opzichte van Canvas Apps op dat moment een stuk beperkter.
Gezien Model-driven Apps geijkt zijn op data, regelen we de logica van de app in op het 'dataniveau'. Dit betekent dat we een calculated kolom hebben aangemaakt, die de bijdrage van de afdeling automatisch berekent, en een 'business rule' hebben aangemaakt, die de geschatte leverdatum berekent zodra er een orderdatum gevuld is. Hopelijk heb je hierbij opgemerkt dat dit soort logica normaliter bij een Canvas App op 'app-niveau' wordt ingericht.
We hebben het daarnaast ook kort gehad over 'business process flows': dit zijn formulieren die gebruikers stapsgewijs begeleiden bij het invullen van data. Ook deze business process flows waren voor het grootste gedeelte voorgekauwd. Je hoeft alleen invulling te geven aan de logica van business process flows. Zo bepaal je bijvoorbeeld welke stappen en voorwaardes er eventueel in voor moeten komen.
We eindigden de dag met ons persoonlijke favoriete onderdeel: Power Automate! Hoewel Power Automate een heel andere naam draagt dan Power Apps, heeft het wel veel met elkaar te maken. Power Automate wordt namelijk in de praktijk vaak gebruikt voor complexe handelingen die niet van nature te bouwen zijn in Power Apps. Een voorbeeldje hiervan is het uploaden van een aantal bestanden naar SharePoint. In Power Apps is dit lastig tot niet mogelijk. Maar door Power Automate aan te haken, kun je dit wél realiseren. Met Power Automate regel je dus de workflows die achter je app schuilgaan.
In de labopdrachten haakten we Power Automate aan, omdat we een goedkeuringsfunctionaliteit wilden voor de koffie-app. Via Power Automate zorgden we er namelijk voor dat er automatisch een goedkeuring via Teams of Outlook binnenkomt bij een nieuwe order van een koffie-apparaat.
Belangrijk om te weten is dat je Power Automate ook los van Power Apps kan gebruiken. Je kan Power Automate bijvoorbeeld gebruiken om repetitieve taken te automatiseren. Dit gaat (net zoals Power Apps) met bouwblokken in de vorm acties die je moet definiëren. Een actie zou kunnen zijn: haal het weer op of lees de mailbox uit. Power Apps komt in dat geval goed van pas als voorkantje.
Al met al, was het een drukke dag waarbij het tempo hoog lag. Er was weinig ruimte om de labopdrachten te reflecteren op je eigen situatie. Laat het lesmateriaal daarom even rustig bezinken.
Hieronder hebben we nog een aantal handige resources op een rijtje gezet:
Op zoek naar hulp op het gebied van Power Automate of Power Apps? Boek gemakkelijk een vrijblijvende meeting met onze specialist en laat je helpen!