Objecten verbinden in BPMN
Introductie
In BPMN 2.0 bepalen connecting objects de relaties en de Informatiestroom tussen elementen in een procesmodel. Ze verbinden activiteiten, gebeurtenissen en gateways, sturen de processtroom aan of dragen data en messages over. De belangrijkste connecting objects zijn sequence flows, message flows en associations.
Sequence Flow
Een sequence flow bepaalt de volgorde waarin activiteiten, gebeurtenissen en gateways worden uitgevoerd in een proces. Het laat de logische stap-voor-stap voortgang zien.
Deze lijn geeft de volgorde aan waarin taken uitgevoerd moeten worden. Deze wordt weergegeven als een rechte lijn met een pijl aan het eind. Dit kan een conditieele of standaard route aanduiden.
- Voorbeeld: Een sequence flow verbindt een “Submit Application” taak met een “Review Application” taak en laat zien dat de review volgt op de indiening.
- Typen sequence flows:
- Normaal Sequence Flow: Standaard flow tussen activiteiten.
- Conditional Sequence Flow: Deze flow gaat alleen verder als aan een specifieke conditie is voldaan (aangegeven met een kleine ruit).
- Default Sequence Flow: Dit is de fallback flow als er geen condities zijn (te herkennen aan een diagonale streep bij het beginpunt).
- Use Case: Gebruik sequence flows om de stap-voor-stap voortgang van een proces aan te geven, zodat activiteiten in de juiste volgorde worden uitgevoerd.
Message Flow
Een message flow geeft communicatie weer tussen verschillende deelnemers of processen, meestal als ze in aparte pools zijn ingedeeld. Hiermee toon je de uitwisseling van Informatie tussen processen die onafhankelijk van elkaar functioneren.
De message flow-connector laat communicatie zien tussen verschillende pools of over organisatiegrenzen heen, zoals afdelingen. Het is niet bedoeld om gebeurtenissen of activiteiten binnen dezelfde pool te verbinden. Deze connector wordt getoond als een sTippellijn die begint met een cirkel en eindigt met een open pijl.
- Voorbeeld: Een message flow verbindt een “Send Invoice” taak in de ene pool (de leverancier) met een “Receive Invoice” taak in de andere pool (de klant), waarmee wordt getoond dat de factuur tussen hen wordt verzonden.
- Use Case: Gebruik message flows om communicatie tussen verschillende organisaties of zakelijke deelnemers weer te geven, bijvoorbeeld wanneer een bedrijf een orderverzoek stuurt naar een ander.
Association
Een association verbindt artefacten (zoals data-objects, tekstannotaties of groepen) met flow objects (activiteiten, gebeurtenissen, gateways) om context te geven of relaties te verduidelijken. Associations hebben geen invloed op de volgorde van het proces, maar worden gebruikt voor documentatie en extra toelichting.
Dit element wordt weergegeven als een gesTippelde lijn zonder pijl of cirkel. Het verbindt een gebeurtenis, activiteit of gateway met een artefact.
- Voorbeeld: Een association verbindt een “Generate Report” taak met een “Report Document” (data-object), waarmee duidelijk wordt dat deze taak het document oplevert.
- Typen associations:
- Normaal Association: Verbindt bijvoorbeeld taken met data-objects of annotaties.
- Directional Association: Geeft de stroom van data naar of van een taak aan (herkenbaar aan een pijl).
- Bi-Directional Association: Geeft een tweezijdige relatie tussen elementen aan (twee pijlen).
- Use Case: Gebruik associations om extra Informatie zoals data-objects of tekstannotaties te koppelen aan taken of gebeurtenissen zonder de processtroom te beïnvloeden.
Belangrijke punten over Verbindingselementen
- Sequence Flow: Definieert de volgorde van taken of gebeurtenissen binnen één proces (in één pool). Gebruik het om de flow van activiteiten, condities en beslissingen vast te leggen.
- Message Flow: Geeft communicatie weer tussen verschillende deelnemers of processen (over verschillende pools heen). Gebruik dit als processen Informatie uitwisselen of acties bij een ander proces starten.
- Association: Verbindt extra Informatie zoals data, documenten of annotaties aan activiteiten. Dit biedt context of uitleg, maar stuurt niet de processtroom aan.
Voorbeeld
Stel je een proces voor waarin klantorders worden beheerd:
- Sequence Flow: Na het ontvangen van een order wordt de order verwerkt en daarna doorgestuurd voor levering. Elke stap (ontvangen, processen, leveren) wordt verbonden door sequence flows.
- Message Flow: Nadat de order is verwerkt, wordt er een bericht gestuurd naar een externe vervoerder om de levering te regelen. Deze communicatie wordt weergegeven door een message flow tussen de twee partijen.
- Association: Een “Klant Order” data-object is gekoppeld aan de “Receive Order” taak om aan te geven dat deze taak ordergegevens verwerkt.
Samenvatting
- Sequence Flow: Beheert de volgorde van activiteiten binnen één proces.
- Message Flow: Maakt communicatie mogelijk tussen verschillende entiteiten of pools.
- Association: Verbindt artefacten zoals data of annotaties aan flow-elementen voor extra context.
Deze connecting objects zijn belangrijk om te bepalen hoe taken en gebeurtenissen gekoppeld zijn, hoe data door processen stroomt en hoe processen onderling samenwerken in een BPMN-model.