Low-code of no-code, de weg naar de toekomst (2)

Hoe je met PowerApps eenvoudig complexe functionaliteiten toevoegt aan Excel.

Een serie blogs over Excel en Power BI.

BLOG - Vorige keer besprak ik het verschil tussen high-code en low- of no-code en waarom die laatste twee zo belangrijk zijn. Dit keer laat ik dat zien met een praktijkvoorbeeld: geclusterde validatie.

Door Henk Vlootman, adviseur, trainer, spreker en auteur, en topspecialist op het gebied van Microsoft Power BI en Power Query.

Een van de -lees: mijn- problemen met Excel is dat gestructureerde invoer, zonder high-code toevoegingen, onmogelijk is. Standaard is in iedere cel invoer van iedere waarde die je maar bedenkt mogelijk. Maar de praktijk is, dat je juist controle wil hebben over de invoer van waarden in cellen. Dit proces heet valideren en dat dwing je in Excel af met de functionaliteit in het tabblad Data: de knop Data Valideren. Ik vind bijvoorbeeld dat de waarde in een bepaalde reeks invoercellen een geheel getal tussen 0 en 10 moet zijn. Daarmee zijn waarden als -1, 2 ½, 100 en 'drie' (tekst) verboden. Dat is geen enkel probleem, als je de invoercellen valideert.

Waarom geclusterde validatie?

Excel werkt op celbasis en daardoor ben je prima in staat om individuele cellen te valideren. Maar door deze eigenschap is het in standaard Excel niet mogelijk om validatie over meerdere cellen tegelijk toe te passen, de zogenaamde geclusterde validatie. Je valideert bijvoorbeeld cellen in een kolom voor de invoer van 'Aantal producten' op gehele getallen met als minimale waarde 1 en cellen in de volgende kolom voor het 'Bedrag' in een decimaal getal.  In de rijcontext vormen beide in de cellen in de kolom 'Totale prijs' een formule met de vermenigvuldiging van beide waarden. Maar je dwingt niet af dat beide cellen moeten worden ingevuld.

Error in shortcode: slug must be set

In het bovenstaande voorbeeld zijn beide invoercellen in de rijcontext betrokken bij de berekening. Is een waarde in een van de invoercellen niet ingevuld, dan breekt dit de validatie niet. Een getal vermenigvuldigt met niets blijft immers niets. Maar denk je eens in dat je ook een kolom met invoercellen hebt gedefinieerd, met een datumvalidatie. Wordt die cel niet ingevuld, dan heb je plotseling een waarde uit de berekening, die niet is uitgedrukt in tijd - 'leeg' is immers geen datum. In dit scenario mis je de geclusterde validatie.

Met VBA bereik je wel een geclusterde validatie en ook met mooi uitgewerkte vensters zoals je ziet in de afbeelding links. Het uitwerken van deze vensters omvat wel eindeloos veel rijen code. Het is zeker een professionele oplossing, waarvoor je ook een professionele ontwikkelaar met diepgaande kennis van VBA nodig hebt. En vergeet niet de grote hoeveelheid tijd die het kost om dit soort vensters te coderen.

PowerApps to the rescue

Vergelijk dat met het scenario dat je werkt met de low-code PowerApps. In PowerApps definieer je objecten. Soms werkt dat aan de hand van invulvensters, soms is het puur typewerk. Waar ze bij Microsoft goed naar hebben gekeken, zijn de gebruikers. Schrijf je in PowerApps code, dan lijkt die code erg op de Functietaal die je in Excel gebruikt. Kijk maar naar de afbeelding hieronder: herken je de ALS-functie?In PowerApps valideer je ieder invoerveld. Desgewenst definieer je daarna clusters van invoervelden. De App verzendt gewoonweg de invoer niet, zolang niet ieder validatieveld tevreden is gesteld. Je schrijft vervolgens via Flow de waarden weg naar een online Excel bestand, een SharePoint-lijst of een database. Of, hoewel niet zinvol, naar alle drie de smaken tegelijk. Daarnaast maak je de vormgeving zo attractief als je zelf wil (afbeelding rechts). Werk je met PowerApps, dan opent zich een geheel nieuwe wereld.

Zijn er naast deze jubelzang dan geen nadelen aan PowerApps? Natuurlijk wel. Eerst het verdienmodel van Microsoft. Werk je met PowerApps, dan heb jij en de gebruiker(s) van de app een licentie nodig en vooralsnog moeten ze in jouw tenant (bedrijf) werkzaam zijn. Daarnaast vraag ik mij af of PowerApps bestemd is voor iedereen die met Excel werkt. In de zin van gebruiker van een app, zeker. Dan is PowerApps voor iedereen een must. In de zin van ontwikkelaar, dan heb ik mijn vraagtekens. Het ontwikkelen van apps vereist een vorm van gestructureerd denken, die niet iedereen bezit.

Blogs in deze serie: