Skip to main content
Skip table of contents

Call acitivity of subproces

Vooraf

Het is mogelijk om alles onder te brengen in één grote BPMN-workflowdefinitie. Dit biedt het voordeel dat alles samengebracht is op één enkel canvas. Maar op zeker ogenblik krijg je het gevoel dat het geheel overbeladen is. Je raakt het overzicht kwijt.

Structuur aanbrengen

Dan ontstaat de nood om zaken uit te splitsen over verschillende workflows die je kan aanroepen vanuit je hoofdproces. In die workflows kan je bovendien bepaalde elementen groeperen in subprocessen die je vervolgens visueel kan inklappen. Zo breng je stelselmatig meer structuur aan. Maar wat is nu het verschil tussen een gelinkte workflow (called workflow) en een subproces? En wanneer gebruik je wat?

Verschilpunten

Subprocessen

Zowel bij embedded subprocessen als bij called workflows is het mogelijk om binnen een workflow een andere workflow aan te roepen en op te starten. Hoewel er inderdaad gelijkenissen zijn, bestaan er toch ook enkele fundamentele verschilpunten.

Gelijkenissen

Subproces

Called workflow

Het hoofproces activeert het subproces en wacht totdat het subproces afgesloten is vooraleer zelf verder te gaan.

Het hoofdproces roept een andere workflow aan en wacht totdat deze afgesloten is vooraleer zelf verder te gaan.

Een subproces heeft een lokale scope waarin je lokale variabelen kunt definiëren die geen effect uitoefenen op het hoofdproces.

Een called workflow heeft een eigen scope met eigen variabelen die geen effect uitoefenen op het hoofdproces.

Verschilpunten

Subproces

Called workflow

Hoofdproces en subproces zitten vervat in één enkele BPMN-workflow definitie.

De twee worflows hebben elk een aparte BPMN-workflow definitie.

Een subproces is niet apart versioneerbaar. Het maakt immers deel uit van één en dezelfde BPMN-workflow definitie.

Een called workflow is apart versioneerbaar. Dit betekent dat je vanuit het hoofdproces een specifieke versie van de called workflow kan aanroepen.

Hoofdproces en subproces maken noodzakelijkerwijs deel uit van één en hetzelfde dossiertype.

De twee workflows kunnen ofwel deel uitmaken van hetzelfde ofwel van een ander (gelinkt) dossiertype. Beide opties zijn mogelijk.

Hoewel je in de praktijk met lokale variabelen werkt, kan het subproces beschikken over alle informatie die in de scope van het hoofdproces beschikbaar is (d.w.z. de globale variabelen).

Wanneer je werkt met een call activity heeft de aangeroepen worfklow geen enkele notie van het eerste proces. In dat geval moet je expliciet vastleggen welke informatie je van het ene naar het andere proces overbrengt. Dit gebeurt via mapping van globale procesvariabelen.

Een subproces is altijd een bpmn-proces.

Een called workflow kan ofwel van het type bpmn, ofwel van het type cmmn zijn.

De use case van een subproces is het duidelijk structureren en compartimenteren van een workflow. Dit om de leesbaarheid te verhogen en de foutgevoeligheid te verminderen.

De use case van een called workflow is het centraliseren van bepaalde gestandaardiseerde functies die gedeeld kunnen worden over verschillende worfklows heen.

Enkele vuistregels

Enkele handvaten of vuistregels die kunnen helpen.

  • Als er zaken zijn die je binnen meerdere dienstverleningen kan hergebruiken, twijfel dan niet en breng deze onder in aparte workflows die je via een call activity kan aanroepen.

  • Vermijd het overmatig gebruik van geneste subprocessen. Als je gelaagdheid aanbrengt via een subproces, dan moeten de activiteiten in dat subproces ook van een lagere orde zijn, d.w.z. logisch of functioneel gezien niet op hetzelfde niveau als de activiteiten in het hoofdproces.

  • Zorg ervoor dat er een grote cohesie bestaat tussen de elementen binnen elke workflow. Dit betekent dat taken en gebeurtenissen allemaal gericht zijn op één en hetzelfde einddoel.

  • Called workflows bieden het bijkomende voordeel dat je ze apart kan testen. Eenmaal afgewerkt, kan je ze verder ongemoeid laten.

  • Called workflows zijn in grote mate geïsoleerd van het hoofdproces. Hou er rekening mee dat je de uitwisseling van procesvariabelen expliciet via mappings moet configureren. Subprocessen daarentegen beschikken over alle procesvariabelen van het proces waarin ze genest zitten.

Voorbeelden

Voorbeeld 1

Het hoofdproces betreft een aanvraag die de klassieke stappen volgt. Telkens een fase afgerond is, communiceren we met de aanvrager. Omdat een dergelijke communicatie volgens een vaste procedure verloopt, modelleren we dit via call activities en verwijzen we telkens naar dezelfde ‘called’ workflow. Bemerk dat deze ‘called’ workflow enkele input parameters nodig heeft. Deze stel je in via de input mappings van de respectieve call activities.

Binnen deze called workflow ‘communiceer met aanvrager’ zal er standaard een aanpassing van de (op basis van een template automatisch gegenereerde) communicatie nodig zijn. Ook deze aanpassing gebeurt volgens een vaste procedure (hier: four eyes principe) die eveneens binnen vele andere processen herbruikt kan worden. Vandaar opnieuw de keuze voor een called workflow.

Voorbeeld 2

Onderstaand diagram schetst een procedure om een pakje te versturen. Eén van de stappen is uitgewerkt binnen de scope van een subproces. Dit is een correcte manier van werken omdat de stappen binnen het subproces van een logisch lagere orde zijn dan de taken in het hoofdproces én omdat het subproces nergens anders binnen de organisatie een toepassing vindt.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.