Call activities & called workflows
Definitie
Een called workflow is een workflow die aangeroepen en opgestart wordt vanuit het hoofdproces. Dit gebeurt door middel van een call activity. De belangrijkste use case voor called workflows, is het hergebruiken van standaard procedures. Dit kan binnen in één en hetzelfde hoofdproces of over meerdere hoofdprocessen heen.
Binnen één en hetzelfde hoofdproces.
Voorbeeld: berekening van een premie of subsidiebedrag die je op meerdere punten in je workflow wil laten herberekenen.
Over meerdere hoofdprocessen heen.
Voorbeeld: beroepsprocedure die je vanuit verschillende dienstverleningen kan aanspreken.
Voordelen
Het onderbrengen van dergelijke standaard procedures in een called workflow brengt een aantal voordelen met zich mee:
Je hoeft de called workflow maar op één plek aan te maken en te onderhouden.
De hoofdprocessen blijven overzichtelijker, d.w.z. ze zijn beter leesbaar voor een business owner.
Je kan de called workflow afzonderlijk gaan testen tegen een set van sample data.
De called workflow is volledig ontkoppeld van de hoofdprocessen. Wijzigingen in de hoofdprocessen hebben geen effect op de called workflow, en vice versa. De interface tussen beide gebeurt via de input en output mapping.
Symbool
Het symbool voor een call activity is een afgeronde tegel met dikke rand en een plus icoon erin.
Beheer call activity & called workflow
Call activity
Een call activity kan je via de workflow editor toevoegen aan je bpmn-workflow. Via het eigenschappen panel krijg je toegang tot onderstaande instellingen.
Basis
Basisinstellingen die corresponderen met de belangrijkste instelling onder Geavanceerd > general en Geavanceerd > template.
Eigenschap | Beschrijving |
---|---|
Naam | Naam of label van de call activity zoals die gevisualiseerd wordt binnen de bpmn-workflow. |
Element template | Keuze uit volgende templates:
|
Opgeroepen element | Enkel indien |
Case ref | Enkel indien |
Template id | Enkel indien |
Document title | Enkel indien |
Communicatie id | Enkel indien |
Bedrag | Enkel indien |
Geavanceerd > general
Eigenschap | Beschrijving |
---|---|
Id | Unieke id of key van de call activity |
Name | Naam of label van de call activity zoals die gevisualiseerd wordt binnen de bpmn-workflow. |
Element template |
|
CallActivity Type | bpmn of cmmn |
Called Element | Selecteer de bpmn-worfklow of cmmn-workflow die je wil aanroepen. |
Binding | Welke versie van de aangeroepen workflow wil je?
|
Version | Enkel indien |
Version tag | Enkel indien |
Tenant Id | Parameter irrelevant bij Skryv applicaties |
Business Key |
|
Business Key Expression | Expressie die de business key definieert. Standaard is dit vooraf ingevuld op |
Delegate Variable Mapping | info volgt |
Asynchronous before | |
Asynchronous after | |
Exclusive | Enkel beschikbaar indien Asynchronous before en/of Asynchronous after ingeschakeld zijn. Zie asynchroniciteit voor meer info. |
Element documentation | Volledige beschrijving van het element als de |
Geavanceerd > template
Deze eigenschappen zijn enkel beschikbaar als je eerst een relevante template hebt geselecteerd onder Geavanceerd > general > template.
Geavanceerd > variables
In Mapping: hier kan je informatie uit het hoofdproces vatten in variabelen die je vervolgens meestuurt naar de called workflow.
Out Mapping: hier kan je informatie uit de called workflow vatten in variabelen die vervolgens ter beschikking gesteld worden binnen het hoofdproces.
Bij aanmaak van een variabele kies je volgende opties.
Type: source expression
Source expression: ${procesVariabele}
Target: procesVariabele (naam van de procesvariabele waar je de waarde naartoe wilt schrijven).
Bij input mapping is de source een variabele uit het hoofdproces en de target is de variabele die je ter beschikking stelt in de called workflow. Bij output mapping is het net andersom.
Geavanceerd > execution listeners
Listeners zijn scripts of expressies die getriggerd worden bij opstart of op het einde van de call activity. Zie de pagina over listeners voor meer info.
Geavanceerd > input/output
Declareren en mappen van input en output parameters die enkel geldig zijn voor de scope van de call activity zelf. Dit zijn dus niet de variabelen die doorgegeven worden aan of teruggenomen worden vanuit de called workflow. Voor meer praktische info, zie taak input en output parameters.
Called workflow
Een called workflow kan ofwel van het type bpmn, ofwel van het type cmmn zijn. Klik op de gewenste link voor meer informatie over hoe je dergelijke workflows opbouwt.
Gedrag called workflow
Gedrag call activity binnen hoofdproces
Een called workflow is niet opgenomen in de bpmn-workflow van het hoofdproces, maar wordt er vertegenwoordigd door een call activity. Deze functioneert net zoals een taak. Ze wordt geactiveerd door een incoming process token. De call activity start de called workflow op en wacht totdat deze doorlopen is. Pas nadat de called workflow volledig afgesloten is, geeft de call activity de process token door aan de volgende stap in het hoofdproces.
Intern gedrag called workflow
Een called workflow werkt zoals ieder andere workflow, hetzij van het type bpmn, hetzij van het type cmmn. Klik op de gewenste link voor meer informatie over hoe je dergelijke flows opbouwt.
Input mapping en output mapping
Een called workflow heeft een eigen scope. Alle informatie die je wil overbrengen vanuit het hoofdproces naar de called workflow moet je declareren via de input mapping in de call activity. Alle informatie die je wil terughalen vanuit de called worfklow naar het hoofdproces moet je declareren via de output mapping in de call activity.
Gelijkenissen en verschilpunten met 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. |
Voorbeeld called workflow
Hieronder vind je een eenvoudig voorbeeld van hoe een called workflow werkt. In workflow A (hoofdproces) is een call activity ‘bereken kwadraat’ opgenomen. Deze roept workflow B (called workflow) aan waar dan de effectieve berekening van het kwadraat uitgevoerd wordt. Workflow B spitst zich dus toe op één enkele functie en kan daarom potentieel opgeroepen worden vanuit meerdere hoofdprocessen. De interface tussen workflow A en workflow B kan je instellen via de input mapping en de output mapping. Zo kan je het input getal doorgeven en het resultaat terugnemen.