Zo configureer je een langlopend goedkeuringsproces in Power Automate

Je hebt het vast al eens meegemaakt; Je hebt een goedkeuring verzonden vanuit Power Automate maar omdat de flow de uitvoeringslimiet van 30 dagen heeft bereikt treedt een time-out op, waardoor het onmogelijk is om het goedkeuringsproces te voltooien.
In deze blogpost leggen we je uit hoe je met Power Automate zo’n proces configureert waarmee je de uitvoeringslimiet van 30 dagen van de flow overschrijdt.

Knelpunt

Laten we eerst eens kijken waar het knelpunt ligt bij het optreden van een time-out bij een goedkeuringsproces.

Goedkeuringen zijn entiteiten die binnen Dataverse (voorheen bekend als CDS) bestaan en in principe permanent zijn. De goedkeuringsactie vormt daarom niet het directe knelpunt voor een time-out van het proces. Het grootste probleem is dat een enkele workflow niet langer dan 30 dagen kan worden uitgevoerd vanwege de beperkingen in duur en opslagcapaciteit binnen Power Automate..

Hier is niets aan te doen. Zelfs premiumlicenties hebben nog steeds dezelfde duur- en opslagcapaciteit.

Configuratie

In het vorige hoofdstuk heb ik specifiek gezegd dat een single workflow niet langer dan 30 dagen kan duren. Dit is precies waar de configuratie van een langdurige goedkeuring verschilt van de configuratie van een standaard goedkeuringsworkflow. Je moet je proces configureren met twee workflows (een bovenliggende en een onderliggende) in plaats van slechts één enkele workflow.

Bovenliggende workflow

De bovenliggende workflow is in feite de workflow die je creëert bij het instellen van een goedkeuringsproces, maar zonder de volledige uitkomstverwerking. Dat wordt geconfigureerd in de onderliggende workflow.

Je kan simpelweg een workflow maken die het proces bevat dat je moet configureren. Het verschil met een standaard goedkeuringsworkflow is als volgt:

In plaats van de Start te configureren en te wachten op een goedkeuringsactie, configureert u alleen de “Create an approval”-actie. In het onderstaande voorbeeld bestaat het proces slechts uit een handmatige trigger en de “Create an approval”-actie, maar je kan elke gewenste configuratie gebruiken.

Hierdoor wordt de goedkeuring gestart en naar de goedkeurder verzonden. Vervolgens zorg je ervoor dat de onderliggende workflow weer verder gaat naar waar het wat gebleven, namelijk het verwerken van de uitkomst van de goedkeuring. Daarom voeg je een nieuw item toe aan een SharePoint-lijst (of een andere trigger naar keuze). Deze lijst moet minimaal de volgende informatie bevatten:

  • Approval-ID

Dus heb ik een nieuwe lijst gemaakt in SharePoint, de enkele regel tekstkolom met de naam Goedkeurings-ID aan die lijst toegevoegd en de kolom Titel optioneel gemaakt (omdat ik die kolom niet ga gebruiken):

afbeelding

Terug naar je workflow:
Binnen de "Create an item"-actie wijs je naar je zojuist aangemaakte lijst en voeg je de Approval-ID toe van de Dynamic content van de "Start an approval-actie aan de "approval-ID"-kolom toe:

afbeelding 1

Dat is alles wat je moet configureren voor de bovenliggende stroom.

Onderliggende workflow– verwerking van de uitkomst

Door een nieuw item aan een SharePoint-lijst toe te voegen, kan je een nieuwe workflow activeren met behulp van de trigger “When an item is created”. Deze stroom omvat niet alleen de volledige afhandeling van de uitkomst (zoals geconfigureerd naar jouw wensen), maar bevat ook een mechanisme voor het bewaken van de tijdsduurlimiet.

Het verwerken van de uitkomst

Dit is in feite de standaardconfiguratie voor de verwerking van uitkomsten, maar met twee verschillen:

  1. In plaats van “Start and wait for an approval“, hoef je alleen “Wait for an approval” te gebruiken. Bovendien hoef je de approval-ID niet uit de dynamic content van de “Start an approval”-actie te halen, omdat die actie niet aanwezig is in deze workflow. Je moet in plaats daarvan de Approval-ID van je trigger gebruiken.
afbeelding 2
  1. Daarnaast is het belangrijk om ervoor te zorgen dat je workflow niet in een oneindige loop belandt (zie volgende paragraaf). Om die reden dien je de workflow te stoppen nadat de uitkomst volledig is verwerkt. Dit kun je bereiken door een “Terminate”-actie toe te voegen aan het einde van je configuratie voor de resultaatverwerking.
    Mogelijk wilt u ook uw SharePoint-lijst opschonen door het huidige item te verwijderen dat de stroom heeft geactiveerd bij gebruik van de actie Item verwijderen:
afbeelding 3

Duurlimiet monitoren

Parallel aan die uitkomstverwerking moet je een proces configureren dat de duurlimiet voor je bewaakt. Je kan dit bereiken door een parallelle tak aan je workflow toe te voegen. Je doet dit door het +-pictogram direct na de trigger te selecteren en "Add a parallel branch" te kiezen.

afbeelding 4

Binnen de zojuist gecreëerde parallelle tak, moet je nu een "Delay”-actie toevoegen en instellen op 29 dagen. Hierdoor wordt de parallelle tak met 29 dagen vertraagd, terwijl de hoofdtak operationeel blijft.

afbeelding 5

Nu moet je ervoor zorgen dat de onderliggende workflow opnieuw wordt geactiveerd nadat deze 29 dagen zonder activiteit is verlopen. Om dit te bereiken, moet je dezelfde “Create an item”-actie configureren die je in de bovenliggende workflow hebt gemaakt. Echter, in plaats van de approval-ID uit de dynamic content van de “Start an approval”-actie (die niet aanwezig is in deze stroom), kies je voor de approval-ID uit de trigger zelf:

afbeelding 6

Om je SharePoint-lijst opgeruimd en georganiseerd te houden, verwijder je het huidige item dat de workflow heeft geactiveerd. Omdat je niet meer wil dat dit workflow-exemplaar wacht op de goedkeuringsuitkomst, dien je de workflow te beëindigen met behulp van een "Terminate"-actie. Ik heb mijn beëindigingsstatus ingesteld op "Cancelled" aan deze kant van de parallelle stroom, zodat ik de twee stromen gemakkelijk van elkaar kan onderscheiden:

afbeelding 7

Wanneer beide parallelle vertakkingen correct zijn geconfigureerd, zou de onderliggende workflow er ongeveer zo uit moeten zien:

afbeelding 8

Waar de linkerzijde de configuratie voor het verwerken van uitkomsten is en de rechterzijde dient voor het bewaken van de tijdsduurlimiet.

Overweging

Houd er rekening mee dat bij het creëren van nieuwe SharePoint-items een vertraging van 1-15 minuten kan optreden tussen de workflows die andere workflows activeren. Hierdoor bestaat een kleine kans dat je goedkeuring wordt verwerkt tussen het aanmaken van een nieuw item en het (her)starten van de onderliggende workflow, waardoor het goedkeuringsproces mislukt. Je ziet dit wanneer je de Peek-codemodus van je trigger opent:

afbeelding 9
afbeelding 10

Houd er rekening mee dat een Power Automate-licentie ook het maximale triggerinterval van je workflows bepaalt:

  • Premium (per workflow/per gebruiker): 1 minuut
  • Microsoft 365-geïntegreerd: 5 minuten
  • Gratis/proefversie: 15 minuten

Als je van mening bent dat dit risico te hoog is, kan je overwegen de Dataverse-optie te gebruiken of Logic Apps te gebruiken, waarmee je het triggerinterval zelf kan configureren. 

Gerelateerde berichten

Bijpassende content
Meer weten? Neem contact op met een van onze specialisten!

Wilco Turnhout

CSO en medeoprichter (NL/EU)

Andrew Fix

Andrew Fix

Chief Technology Officer (AU/NZ)