Boundary Event
Wat is een Boundary Event?
Een BPMN 2.0 boundary event is een intermediate catch event dat aan de rand van een activiteit is gekoppeld. Het wacht op een trigger, zoals een deadline, bericht, fout, signaal of gegevenswijziging, zolang de activiteit loopt. Zodra de trigger optreedt, opent het een pad dat uit de activiteit leidt.
- Het staat altijd aan de rand van een task, subprocess, transaction of call activity. Je kunt het niet aan een event of gateway koppelen en het kan niet los in de flow staan.
- Het heeft uitgaande sequence flows, maar geen inkomende sequence flow. De activiteit waaraan het is gekoppeld, is het enige toegangspunt.
- Het wacht alleen op triggers zolang de activiteit actief is. Is de activiteit eerder klaar, dan treedt het boundary event niet meer op. Compensation is de uitzondering: die wordt pas na afloop van de activiteit geactiveerd.
- Wanneer de trigger optreedt, vertrekt er een token via de uitgaande flow van het boundary event. Bij een onderbrekend event vervangt het token van de activiteit; een niet-onderbrekend event voegt een token toe naast het bestaande token.
- In de notatie staat het als een dubbele cirkel op de rand van de activiteit, met het triggersymbool erin.
ProcessMind ondersteunt alle typen boundary events op deze pagina. Sleep een event uit de groep Boundary Event of Niet-onderbrekende grensgebeurtenis. in het palet BPMN-elementen naar de rand van een activiteit om het eraan te koppelen. Je kunt ook een bestaand intermediate catch event naar de rand van een activiteit slepen om het te koppelen. Sleep het er weer vanaf om het los te maken. De koppeling en de instelling voor onderbreken blijven behouden bij export naar BPMN en opnieuw importeren.
Onderbrekend of niet-onderbrekend
Boundary events zijn er in twee varianten. De variant bepaalt wat er met de activiteit gebeurt zodra de trigger optreedt.
| Onderbrekend | Niet-onderbrekend | |
|---|---|---|
| Weergave | Een dubbele, ononderbroken cirkel | Een dubbele, gestreepte cirkel |
| Effect op de activiteit | Wordt meteen geannuleerd; het werk wordt afgebroken | Loopt door; er wordt niets geannuleerd |
| Paden na de trigger | Alleen het boundary-pad; de normale uitgaande flow van de activiteit wordt niet gevolgd | Beide: het normale pad loopt door en het boundary-pad loopt parallel |
| Hoe vaak het kan optreden | Eenmalig; na de trigger is de activiteit beëindigd | Meerdere keren zolang de activiteit actief blijft, bijvoorbeeld bij elke herhaling van een timer |
| BPMN-attribuut | cancelActivity="true" | cancelActivity="false" |
Een onderbrekend boundary event vervangt de normale voortzetting van de activiteit. Een niet-onderbrekend boundary event splitst zich ervan af.
Gebruik een onderbrekend event als de trigger de activiteit zinloos of onveilig maakt om af te ronden, bijvoorbeeld bij een gemiste deadline, een fout of een intrekking. Gebruik een niet-onderbrekend event als de trigger extra werk naast de activiteit vraagt, of een herinnering of melding moet geven zonder het werk dat al bezig is af te breken.
Beide varianten zijn alleen zinvol zolang de activiteit actief is. Een onderbrekend event annuleert de activiteit zodra het optreedt. Andere boundary events op die activiteit worden dan ook uitgeschakeld. Een niet-onderbrekend event laat de activiteit en de andere boundary events intact.
Eén activiteit, meerdere boundary events. Een activiteit kan meerdere boundary events hebben. Een goedkeuringstaak kan bijvoorbeeld deze combinatie bevatten:
- Een onderbrekende timer na twee werkdagen: escaleer de taak en stop deze.
- Een niet-onderbrekende timer om de vier uur: stuur een herinnering en laat de taak doorlopen.
- Een onderbrekende error op de subprocess die de controle uitvoert: handel een technische fout af.
Typen Boundary Events
ProcessMind ondersteunt de onderstaande typen. Er zijn meer onderbrekende typen, omdat sommige triggers alleen zinvol zijn als ze de activiteit stoppen.
Onderbrekende Boundary Events
| Type | Betekenis | Typisch voorbeeld |
|---|---|---|
| Message | Wacht op een specifiek bericht dat voor deze activiteit is bedoeld. | De activiteit “Wacht op offerte van leverancier” wordt onderbroken door het bericht “offerte ingetrokken” en gaat verder met “Andere leverancier zoeken”. |
| Timer | Een deadline: een duur, datum of cyclus die wordt berekend vanaf het moment dat de activiteit begon. | Voor “Onkosten goedkeuren” geldt een timer van twee dagen. Is de taak dan nog niet afgerond, dan gaat de case naar “Escaleer naar financieel manager”. |
| Error | Vangt een error op die binnen de activiteit optreedt en stopt de activiteit. Error boundary events zijn altijd onderbrekend. | De subprocess “Kredietcontrole uitvoeren” geeft de fout “controle mislukt”. Het boundary-pad leidt naar “Handmatige kredietbeoordeling aanvragen”. |
| Escalation | Stopt de activiteit omdat een hoger niveau het moet overnemen. | “Incident oplossen” wordt geëscaleerd zodra de reactietijd is overschreden en gaat verder met “Incidentleider neemt over”. |
| Cancel | Vangt het cancel end event van een transaction-subprocess op. Alleen geldig bij een transaction. | De klant annuleert de transaction “Reis boeken”. Het boundary-pad leidt naar “Betaling terugstorten en reserveringen vrijgeven”. |
| Compensation (speciaal geval) | Voert de compensation-handler uit voor een activiteit die al is afgerond, om het effect ervan ongedaan te maken. Het werk dat nog bezig is, wordt niet geannuleerd. | “Aanbetaling innen” wordt ongedaan gemaakt met “Aanbetaling terugstorten” als de bestelling later in het proces wordt geannuleerd. |
| Conditional | Treedt op wanneer een bedrijfsvoorwaarde waar wordt terwijl de activiteit loopt. | “Voorraad reserveren” wordt onderbroken zodra availableStock < orderedQuantity; de case gaat verder met “Nabestelling plaatsen en klant informeren”. |
| Signal | Vangt een uitzendsignaal op. Een signaal is niet voor één activiteit bedoeld; elke passende luisteraar kan erop reageren. | “Ontbrekende documenten verzamelen” wordt onderbroken door het bedrijfssignaal “case ingetrokken” en de case wordt gesloten. |
| Multiple | Treedt op zodra een van meerdere triggers plaatsvindt. | “Wachten op antwoord van klant” vangt het bericht “antwoord ontvangen” of een timer van tien dagen op. Wat het eerst gebeurt, beëindigt het wachten. |
| Parallel Multiple | Treedt pas op als alle triggers hebben plaatsgevonden. | “Goedkeuringen voor vrijgave verzamelen” wacht op zowel het goedkeuringsbericht van Legal als dat van Security voordat het verdergaat. |
Een paar vuistregels voor deze groep:
- Fout hoort bij een subprocess, call activity of transaction, dus bij de activiteit waarin de fout kan optreden. In een gewone task gebeurt er niets binnenin dat kan misgaan.
- Annuleren hoort bij een transaction-subprocess. Elders valt er niets op te vangen.
- Beloning is het speciale geval. Het wordt geactiveerd nadat de activiteit is afgerond en wordt getriggerd door een compensation throw elders in het proces. Het modelleert “een uitgevoerde stap ongedaan maken”, niet “de lopende stap stoppen”.
- Multiple is een race tussen triggers. Parallel Multiple wacht op alle triggers.
Niet-onderbrekende Boundary Events
| Type | Betekenis | Typisch voorbeeld |
|---|---|---|
| Message | Er komt een bericht binnen terwijl de activiteit doorgaat; het bericht start een zijpad. | “Voorstel opstellen” loopt door wanneer het bericht “opmerking van beoordelaar ontvangen” het pad “Opmerking vastleggen” start. |
| Timer | Een herinnering of periodieke controle; de activiteit wordt niet gestopt. | Bij “Supportticket behandelen” start een timer die elke acht uur “Statusupdate sturen” activeert terwijl de behandeling doorgaat. |
| Escalation | Start een escalatie naast de activiteit, zonder deze te beëindigen. | “Klacht oplossen” loopt door terwijl de escalatie “klant is strategisch belangrijk” de stap “Accountdirecteur informeren” start. |
| Conditional | Een voorwaarde start een zijpad terwijl de activiteit doorgaat. | “Leningaanvraag verwerken” loopt door wanneer riskScore > 70 de stap “Markeren voor auditcontrole” start. |
| Signal | Een uitzendsignaal start voor elke luisteraar een zijpad; de activiteit loopt door. | “Nachtelijke batch uitvoeren” loopt door wanneer het signaal “markt gesloten” de stap “Tussentotalen vastleggen” start. |
| Multiple | Een van meerdere triggers start een zijpad; de activiteit loopt door. | “Contract onderhandelen” blijft open. Een bericht van de tegenpartij of een timer van drie dagen start “Herinnering sturen”. |
| Parallel Multiple | Alle triggers samen starten een zijpad; de activiteit loopt door. | “Wachten op alle controles” blijft actief tot zowel het bericht als het signaal binnen zijn. Daarna start “Gereedheid vastleggen”. |
Gebruik niet-onderbrekende boundary events voor herinneringen, meldingen, observatie en parallelle escalatie. Ze veranderen de hoofdflow niet, maar voegen er een zijpad aan toe.
Eventtypen die geen Boundary Events zijn
Sommige eventtypen lijken geschikt als boundary event, maar zijn dat niet:
- Link-events verbinden delen van een flow. Het zijn intermediate catch- of throw-events in de sequence, geen koppelingen.
- Terminate beëindigt een volledige procesinstantie en komt alleen voor als end event.
- Geen is geen trigger. Een boundary event kan dus nooit “Geen” zijn: elk boundary event moet iets opvangen.
Een Boundary Event toevoegen in ProcessMind
- Open het palet BPMN-elementen.
- Kies een type uit de groep Boundary Event voor een onderbrekend event, of uit Niet-onderbrekende grensgebeurtenis. voor een niet-onderbrekend event.
- Sleep het naar de rand van een task, subprocess, transaction of call activity.
- Laat het los. Het event klikt vast aan de dichtstbijzijnde rand en de activiteit wordt de host.
- Teken de sequence flow van het boundary event naar de eerste stap van het uitzonderingspad of zijpad.
Tips voor het gebruik:
- Als je een intermediate event op de rand van een activiteit neerzet, wordt het eraan gekoppeld. Zet je hetzelfde event op een leeg deel van het canvas, dan wordt het een gewoon intermediate catch event. Sleep het later naar een rand om het te koppelen, of sleep het eraf om het los te maken.
- Een boundary event verplaatst, verbergt of verwijdert altijd samen met de hostactiviteit. Het staat nooit los van een activiteit.
- De niet-onderbrekende variant is een aparte optie in het palet, geen selectievakje. Kies deze voordat je gaat slepen als de activiteit moet doorlopen.
- Bij export wordt de koppeling opgeslagen als
attachedToRefen de instelling voor onderbreken alscancelActivity. Beide worden hersteld wanneer je het bestand opnieuw importeert.
Veelgemaakte fouten
- Een boundary event zonder uitgaande flow. Het vangt de trigger op, maar kan nergens naartoe. Het uitzonderingspad loopt dus dood.
- Een niet-onderbrekende timer gebruiken terwijl de activiteit moet stoppen. De activiteit loopt door, dus de deadline beëindigt het werk niet. Gebruik voor een deadline de onderbrekende variant.
- Een error boundary koppelen aan een gewone task. Koppel deze aan de subprocess of call activity met de stap waarin de fout kan optreden.
- Verwachten dat een boundary event optreedt nadat de activiteit is afgerond. Dat kan niet, behalve bij compensation, die na afloop wordt geactiveerd.
- Cancel buiten een transaction gebruiken. Het cancel boundary event is alleen bedoeld voor transaction-subprocesses.
- Twee onderbrekende events op één activiteit zetten en verwachten dat beide paden lopen. De eerste trigger wint. De activiteit en de andere boundary events worden dan ook geannuleerd.
Alle events met de bijbehorende symbolen
| Start | Tussenliggend | Einde | ||||||
|---|---|---|---|---|---|---|---|---|
| Type | Normaal | Gebeurtenissubproces | Niet-onderbrekend gebeurtenissubproces | Opvangen | Grens | Niet-onderbrekende grens | Verzenden | |
| Geen | | |||||||
| Bericht | | | | | | | | |
| Timer | | | | | | | ||
| Voorwaardelijk | | | | | | | ||
| Koppeling | | | | |||||
| Signaal | | | | | | | | |
| Fout | | | | |||||
| Escalatie | | | | | | | ||
| Beëindiging | | |||||||
| Compensatie | | | | | ||||
| Annuleren | | | ||||||
| Meerdere | | | | | | | | |
| Meerdere parallelle | | | | | | | ||
Een BPMN-model op maat genereren
Gerelateerde onderwerpen
- Events: alle eventtypen.
- Intermediate Event: events in het midden van een flow.
- Activiteiten: de tasks en subprocesses waaraan een boundary event kan worden gekoppeld.
- Ondersteunde BPMN-elementen: wat ProcessMind importeert en exporteert.
- BPMN 2.0: een praktische gids: de notatie met uitgewerkte voorbeelden.
Verbeter processen. Bouw aan een samenhangende architectuur. Houd de regie.
Krijg meteen toegang, zonder creditcard of wachttijd. Maak van de manier waarop je organisatie werkt heldere, samenhangende procesmodellen.
Breng de procesarchitectuur in kaart, leg verantwoordelijkheden en beheersmaatregelen vast en stem rollen en taken op elk niveau op elkaar af.
Start je gratis proefperiode en bouw een betrouwbare basis om processen te beheren en continu te verbeteren.