Wat is een gateway?
Definitie
Een gateway is een BPMN element waarmee de workflow zich kan vertakken in meerdere flows, of waarmee meerdere flows kunnen worden samengevoegd tot één flow. Afhankelijk van het gewenste gedrag kun je verschillende gateway types hebben die je kunt configureren met behulp van gateway eigenschappen.
Symbool
Een gateway wordt weergegeven door een ruit.
Voorbeelden
Met gateways kun je veel verschillende scenario's modelleren. Hieronder vind je alvast vier eenvoudige voorbeelden. Zie de overige pagina’s in deze sectie voor meer info over types en eigenschappen.
Voorbeeld met exclusive gateway
In de workflow hieronder zorgt de eerste gateway ervoor dat de workflow vertakt. Op deze manier kunnen twee verschillende voortzettingen worden gemodelleerd. Omgekeerd voegt de tweede gateway de twee flows weer samen tot één vervolg. Hier zijn exclusive gateways gebruikt: slechts één van beide paden kan worden geactiveerd.
Voorbeeld met parallel gateway
De workflow hieronder lijkt erg op die hierboven, maar hier worden parallelle gateways gebruikt. Dit betekent dat beide paden tegelijkertijd worden geactiveerd. Bij de vertakkende gateway wordt de process token opgesplitst in twee onderling gelinkte tokens. Deze wachten op elkaar bij de tweede gateway. Daar worden de twee process tokens weer samengevoegd tot één token en gaat het proces verder.
Voorbeeld met inclusive gateway
De workflow hieronder maakt gebruik van een inclusive gateway. Dit betekent dat één of meer paden worden geactiveerd afhankelijk van condities die zijn geconfigureerd. De inkomende process token kan worden gesplitst in meerdere aan elkaar gelinkte tokens. Het proces zal alleen eindigen als al deze tokens geconsumeerd zijn binnen een end event. Merk op dat de derde uitgaande flow is gemarkeerd als default. Dit betekent dat als geen enkele van de twee andere flows wordt geactiveerd, de process token dit pad zal volgen.
Voorbeeld met event based gateway
De workflow hieronder maakt gebruik van een event based gateway. De process token wacht in de gateway tot één van beide uitgaande flows getriggerd wordt door een intermediate catch event. In het voorbeelddiagram zie je twee typische intermediate catch events, namelijk een timer (na 20 dagen) en een inkomend message (een freelancer reageert op een gepubliceerde opracht). De process token gaat enkel door in de geactiveerde flow. De andere flow wordt verder genegeerd.