Fouten afvangen met een try-catch-blok in Power Automate

Een try-catch-blok is een bekend principe voor programmeurs. In code worden ze toegepast om de uitzonderingen (fouten) op te vangen en daar op te reageren. Oftewel fout-afhandeling. Power Automate is een low-code toepassing maar het principe van een try-catch-blok is zeker de moeite waard. In werkstromen kom je regelmatig in de situatie dat een actie faalt. Het kan dan zijn dat dan de werkstroom stopt en verder niets gebeurt; Of dat de werkstroom toch verder gaat zonder de essentiële informatie. In beide situaties kun je ingrijpen door de actie in een try-catch-blok te plaatsen en daar op te reageren.

Het voorbeeld

In deze post wordt het voorbeeld gebruikt van een HTTP-request. De HTTP-request is een actie waarmee data opgevraagd kan worden. In deze post wordt niet verder ingegaan op deze actie en hoe die is toe te passen. Wanneer je data opvraagt met de HTTP-request hoeft het niet zo te zijn dat je altijd de data krijgt die je verwacht. Dit is het punt waar de try-catch-blok zijn waarde laat zien.

De cases: In dit voorbeeld wordt de werkstroom gestart (trigger) wanneer in de SharePoint-bibliotheek een bestand wordt verwijderd. Met een HTTP-request wordt de data van het bestand opgehaald uit de prullenbak.

Issue: In de prullenbak kunnen uiteraard meer bestanden staan. Het is niet vanzelfsprekend dat het laatste bestand ook het bestand is waar de werkstroom op getriggerd is. Een beperking in dit scenario is dat alleen gefilterd kan worden op de naam van het bestand. Wanneer in de bestandsnaam een vreemd teken staat, zoals het en-teken(&) faalt de query en krijgt de HTTP-request geen data.

Oplossing: plaats de actie HTTP-request in een try-catch-blok zodat wanneer het filteren (de query) faalt daarop gereageerd kan worden.

Toepassen actie Bereik

Power Automate kent de actie Bereik (Scope). De actie Bereik is een stap waar andere acties in geplaatst worden zodat die samen in 1 context staan. Een Bereik zelf doet niets maar wanneer een tweede actie Bereik (de volgende) wordt toegevoegd kun je die afhankelijk maken van het vorige blok Bereik. Met dit mechanisme kun je dynamische stappen inbouwen. Maar in deze cases luisteren we in de volgende stap of in de vorige iets is misgaan.

Om een try-catch-blok te maken voeg in de werkstroom twee maal de actie Bereik (Scope) toe.

actie Bereik Scope

Voor de duidelijkheid verander je de titels van de acties met een beschrijvende titel. Op het tweede blok (catch) open je via het menu van het blok: Uitvoeren na configureren.

uitvoeren

In Uitvoeren na ..  zie je aan de linker kant naar welk blok die luisterd.
Rechts vink je de opties aan waarop je wilt reageren.

actie Bereik uitvoeren opties

Na het opslaan van de Uitvoeren na .. zie dat de lijn tussen beide blokken een duiding geeft.

blok try catch

Zorg ervaar dat de acties die je wilt gebruiken in de Bereik-acties staan. Het resultaat in dit voorbeeld is:

A: In het try-catch-blok is de actie van het HTTP-request geplaatst. Wanneer het request succesvol is gaat de werkstroom verder.

B: Op het moment dat de HTTP-request een fout retourneert gaat het Catch-blok in werking. In dit voorbeeld wordt als reactie een registratie in een log gemaakt.

try-catch-blok met acties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *