Taaktypes
Inleiding
Een BPMN-taak vertegenwoordigt een activiteit die om uitvoering vraagt. Er zijn verschillende types waarvan de meest courante de gebruikerstaken (uitvoering door een menselijke gebruiker) en de servicetaken (uitvoering door een technsiche service) zijn. Daarnaast heeft elke taak ook een uitvoeringsmodus. Standaard is dit enkelvoudig, maar dit kan ook multi-instance zijn.
Input en output parameters
Afhankelijk van type of van de geselecteerde template heeft een taak enkele input en outparameters. Een input parameter is een variabele die aangemaakt wordt en enkel leeft binnen de scope van de taak. Een output parameter is een globale procesvariabele die aangemaakt wordt op basis van informatie die voortkomt uit de lokale scope van de taak.
Voorbeelden input parameter:
De tekstboodschap die gevisualiseerd wordt binnen de popup van een bevestigingstaak.
De key van de formulierdefinitie op basis waarvan een specifieke formuliertaak aangemaakt wordt.
De rol die een gebruiker binnen het dossier moet hebben om de taak te mogen zien en uitvoeren.
De key van de communicatietemplate op basis waarvan een specifieke communicatie gegenereerd en klaargezet wordt in de frontoffice.
Specifieke informatie die meegestuurd wordt in een API call naar een gekoppelde service zoals Magda geefPersoon (denk aan: rijksregisternummer).
Voorbeelden output parameter:
Een boolean die de beslissing van de gebruiker aanduidt (denk aan: goedgekeurd of niet).
Een tijdsstempel die aanduidt wanneer de taak precies is uitgevoerd (denk aan: is de aanvraag ingediend vóór of na een specifieke datum).
Specifieke informatie die terugkomt van een gekoppelde service zoals Magda geefPersoon (denk aan adresgegevens).
Listeners
Een listener is een expressie, script of een extensie die je bij de start of op het einde van de taak kan laten uitvoeren. Het vervult typisch een functie die je niet zichtbaar wil maken binnen je BPMN-workflow, maar die wel noodzakelijk is voor de correcte uitvoering van een proces.
Voorbeelden listeners:
Wegschrijven van de data die terugkomen via Magda geefPersoon, naar een specifiek formulier.
Updaten van een eerder gegenereerde communicatie.
Specifiek voor gebruikerstaken zijn er ook task listeners. Deze kan je triggeren op momenten die eigen zijn aan gebruikerstaken (bijvoorbeeld niet start
, maar create
).
Taaktypes
Gebruikerstaak
Symbool
Uitleg
Taak die moet worden uitgevoerd door een menselijke gebruiker binnen de frontoffice of backoffice van de applicatie. De process token blijft in het taakelement totdat de actie is voltooid.
Subtypes
Er zijn drie types gebruikerstaken: formuliertaak, communicatietaak en bevestigingstaak. Binnen de frontoffice wordt enkel de formuliertaak ondersteund.
Formuliertaak: formulier invullen en indienen.
Communicatietaak: communicatie nalezen, editeren (indien zo geconfigureerd) en indienen.
Bevestigingstaak: de enige functie hiervan is het proces tegenhouden tot het ogenblik dat de backoffice gebruiker via een popup toelating geeft om het proces verder te laten gaan.
Optionele gebruikerstaken
Als configurator kan je de gebruikerstaak markeren als optioneel. Dit kan door toevoeging van de input parameter isOptional:true
.
Hierdoor komt de taak onder een andere hoofding te staan in de frontoffice: ‘optionele dossieracties’ in plaats van ‘vereiste dossieracties’. De gebruiker is dan niet verplicht om de taak uit te voeren. Let er uiteraard op dat de gebruikerstaak niet blokkerend is voor de verdere uitvoering van het proces en de afronding van het dossier. Ook in de backoffice komt de taak niet bij de ‘vereiste taken’ te staan, maar wel onder de ‘acties’ knop.
Deze werkwijze zal op termijn de werkwijze via CMMN vervangen.
Toewijzing van gebruikerstaken
In de BPMN-workflow heb je diverse mogelijkheden om de toewijzing van concrete gebruikerstaken te beïnvloeden.
De meest courante werkwijze is om te verwijzen naar een specifieke rol. In dat geval wordt de taak willekeurig uitgedeeld binnen een groep van gebruikers die dynamisch samengesteld wordt op basis van twee criteria. Eerst en vooral heeft de gebruiker toegang tot het dossier (voor aanvrager in frontoffice verloopt dit automatisch, voor backoffice gebruiker moet de backoffice admin dit instellen) en ten tweede mag de gebruiker de opgegeven rol vervullen binnen dat dossier (voor aanvrager in frontoffice moet de configurator dit instellen via de dossiertype instellingen, voor backoffice gebruiker moet de backoffice admin dit instellen).
Een tweede veel gebruikte werkwijze is om een backoffice gebruikerstaak dynamisch aan één specifieke gebruiker toe te wijzen. Bijvoorbeeld een dossierbeheerder die de intake van een dossier doet, krijgt ook alle daaropvolgende taken toegewezen. Bij uitvoering van de intake taak wordt de ID van deze gebruiker opgeslagen in een procesvariabele. Deze variabele stuurt dan de toewijzing van alle verdere taken stroomafwaarts binnen het proces.
Task listeners
Task listeners zijn een bijzonder soort listeners enkel gebruikt binnen de context van gebruikerstaken.
Meer info
Configuratie van gebruikerstaken via taaktemplates & eigenschappen.
Voorbeelden en gedrag van gebruikerstaken in de backoffice.
Voorbeeld en gedrag van formuliertaak in de frontoffice.
Documentatie rond toewijzing van gebruikerstaken.
Meer uitleg rond task listeners.
Via de bulktaken functionaliteit is het mogelijk om gelijke bevestigingstaken over meerdere dossiers heen te groeperen en in één keer samen uit te voeren.
Servicetaak
Symbool
Uitleg
Taak die moet worden uitgevoerd door de workflow engine. Typische voorbeelden zijn het genereren van een PDF-document, het versturen van een e-mail, het gebruik van een connector of het aanroepen van een aangepaste back-end functionaliteit (extensie).
Subtypes
Er zijn drie subtypes of categorieën van servicetaken.
Standaard dossieractie: specifieke dossier gerelateerde acties zoals ‘verzend e-mail’ of ‘document toevoegen aan frontoffice’.
Externe connector: Skryv connectoren die verbinding maken met externe services zoals Magda.
Expressie: schrijf zelf een workflow expressie.
Voor de meest courant gebruikte types servicetaken bestaan templates.
Aandachtspunten
Samen met gebruikerstaken zullen servicetaken de hoofdmoot van de BPMN-elementen in de workflow vormen. In de praktijk moet je als configurator zoeken naar het juiste evenwicht tussen menselijke tussenkomst (gebruikerstaken) en automatisatie (servicetaken). Waar dit evenwicht zich precies bevindt, hangt uiteraard af van business requirements en moet goed doorsproken worden met de business owners.
Wanneer je een servicetaak definieert binnen de BPMN-workflow moet die een duidelijke betekenis hebben voor de business. De BPMN-workflow mag geen ‘programmeerinterface’ worden waarbij je elk afzonderlijk stapje in een servicetaak definieert. Zie ook de sectie ‘best practices’.
Meer info
Welke Skryv service taak templates bestaan er en hoe vul je de gewenste parameters in?
Welke Skryv connectoren bestaan er, waarvoor gebruik je ze en hoe werken ze precies?
Manual task
Symbool
Uitleg
Taken die automatisch worden voltooid als een process token erdoorheen passeert. Geen gebruikersinteractie, geen script of service gedefinieerd.
Use cases
Louter beschrijvende details toevoegen aan de workflow.
Placeholders tijdens het modelleren van je workflow.
Aandachtspunten
Voeg hier nooit logica toe onder de vorm van listeners, input of output parameters. Een manual task moet je kunnen verwijderen zonder invloed op de integriteit en de goede werking van het proces.
Meer info
Geen specifieke eigenschappen of logica te definiëren.
Business decision rule task
Symbool

Uitleg
Taak die een set output waarden berekent uit een set input waarden op basis van een set business regels die zijn opgeslagen in een beslissingstabel.
Use case
Expliciteren van logica en regels die aan de grondslag liggen van een business beslissing zodat deze transparant zijn voor een business owner of een business analist.
Eenvoudig beheer van logica en regels garandeert een snelle aanpasbaarheid en wendbaarheid.
Voorbeeld
Een burger dient een aanvraag in voor een subsidie. Op basis van enkele kenmerken zoals inkomen, bezit van eigendommen of aantal kinderen ten laste wordt de burger toegewezen aan een specifieke categorie. Deze categorie bepaalt uiteindelijk de verdere afhandeling van de procedure en het maximale subsidiebedrag waarop de burger aanspraak kan maken. De business regels op basis waarvan de toewijzing aan een specifieke categorie gebeurt, worden transparant opgesteld en beheerd binnen een beslissingstabel.
Aandachtspunten
Niet gebruiken indien de beslissing geen echte business value heeft. In dat geval is het beter om de logica onder te brengen in een aparte service (bijvoorbeeld een extensie die je vanuit het proces kan aanroepen via een service taak).
Bij het nemen van complexere beslissingen, is het aangewezen om de logica op te splitsen over meerdere beslissingstabellen. Deze kan je dan via een DRD of beslissingsdiagram in relatie tot elkaar brengen.
Er is een Skryv template die toelaat om een beslissingstabel op een eenvoudige manier te koppelen. Voor meer complexe zaken werk je best zonder deze template en vul je de standaard door Camunda aangeboden parameters in.
Meer info
Specifieke eigenschappen en templates voor business rule decision tasks.
Wat zijn beslissingstabellen, hoe zijn ze opgebouwd en hoe kan je ze beheren binnen Studio?
Message send task
Symbool
Uitleg
Taak die een specifieke message aanmaakt en uitstuurt. De process token gaat onmiddellijk verder.
Use case
Aanmaken en uitsturen van een specifieke message die ergens anders binnen de applicatie (zelfde of ander proces) of eventueel door een extern systeem opgevangen wordt.
Flexibele interactie tussen verschillende processen en systemen.
Ontkoppeling van processen en systemen zodat ze asynchroon en onafhankelijk van elkaar kunnen opereren. Ook het beheer van beide systemen verloopt hierdoor een stuk eenvoudiger.
Voorbeeld
Een typisch voorbeeld is de interactie tussen een ordersysteem en een betalingssysteem. Zodra de klant zijn of haar bestelling geplaatst heeft, stuurt het ordersysteem een message naar het betalingssysteem. Daar wordt een apart proces opgestart waardoor de klant een betaalverzoek krijgt. Ondertussen gaat het proces binnen het ordersysteem verder. Verschillende stappen komen aan bod zoals het checken van de voorraad, de opmaak van een picking order, het opstellen van de factuur, enzovoort. Uiteindelijk wacht het orderproces enkel nog op een bericht van het betalingssysteem om over te gaan tot de laatste stap, typisch de levering van het order aan de klant.
Voorbeeld bulk workflow
Veel Skryv applicaties gebruiken de multi-instance variant van de message send task binnen de context van een bulk workflow. Hierbij itereert de taak over alle procesinstanties die opgehaald en/of geselecteerd zijn binnen de bulk workflow. Zo wordt een message uitgestuurd naar elk van die procesinstanties. In die afzonderlijke procesinstanties wordt de message dan opgevangen via een message receive task. Klik hier voor meer info over bulktaken en de use cases ervan.
Meer info
Specifieke eigenschappen voor message send task.
Wat zijn signals & messages, waarvoor kan je ze gebruiken en hoe stel je ze in?
Message receive task
Symbool
Uitleg
Taak die een specifieke message opvangt. De process token wacht totdat de message ontvangen is vooraleer verder te gaan.
Use case
Vergelijkbaar met message send task. Zie hoger.
Voorbeeld
Vergelijkbaar met message send task. Zie hoger.
Meer info
Specifieke eigenschappen voor message receive task.
Wat zijn signals & messages, waarvoor kan je ze gebruiken en hoe stel je ze in?
Script task
Symbool
Uitleg
Taak die een Javascript uitvoert.
Use case
Korte stukjes code die rechtstreeks en synchroon binnen de scope van het proces uitgevoerd worden. Aldus erg vergelijkbaar met workflow expressies (deze worden uitgevoerd via een servicetaak).
Aandachtspunten
Bij voorkeur niet gebruiken in combinatie met gevoelige dossierdata. Doe je dit wel, dan moet je deze data achteraf gaan verwijderen via de anonymisatie functionaliteit.
Enkel geschikt voor eenvoudige, ad hoc operaties. Van zodra de complexiteit toeneemt of van zodra de functie gewenst is op meerdere plekken binnen de workflow, schakel je best over op een extensie. Deze biedt het voordeel van centraal en overzichtelijk beheer.
Meer info
Specifieke eigenschappen voor een script task.
Hoe werkt workflow scripting en waarvoor kan je het gebruiken?
Taak markers (uitvoeringsmodus)
Enkelvoudig
Standaard wordt de taak enkelvoudig uitgevoerd. Dit betekent dat er slechts één taakinstantie is. Hiervoor is geen specifieke task marker of symbool voorzien.
Parallel multi-instance
Symbool
Uitleg
Per item in een input collectie (zoals een lijst) moet een aparte instantie van de taak opgestart en uitgevoerd worden. Parallel betekent dat alle instanties tegelijk worden aangemaakt.
Meer info
Specifieke eigenschappen om een taak parallel multi-instance te maken.
Sequential multi-instance
Symbool
Uitleg
Per item in een input collectie (zoals een lijst) moet een aparte instantie van de taak opgestart en uitgevoerd worden. Sequentieel betekent dat instanties één na één worden aangemaakt. De eerste moet afgewerkt zijn vooraleer de tweede klaargezet wordt.
Meer info
Specifieke eigenschappen om een taak sequential multi-instance te maken.
Loop
Symbool
Uitleg
Een taak die meerdere keren wordt uitgevoerd totdat aan een specifieke conditie is voldaan.
Meer info
Niet ondersteund door de workflow egine.
Specifieke eigenschappen om een taak loop te maken.