Search code examples
bpmn

Two "start" needed in the same lane in BPMN 1.2


I know in BPMN there is just a "start event" for each pool. In my case I have a pool that can begin when a message is caught or because the actor decide to do it by his own decision.

How can I model that? I'm not sure I can use an event-based exclusive XOR.

Maybe a complex gateway?


Solution

  • Unlimited process instances

    If you don't mind that during execution of your process the pool could be used multiple times (e. g. once started by a message and 3 times by an actor) then you can simply use multiple start events (BPMN 1.2 PDF Spec 9.3.2 page 37 allows this): enter image description here

    Single instance

    If you can only allow a single run of the pool, you might have to instantiate it manually at the start of your execution and then decide whether to use it and when. Here is an example of how this can be done: enter image description here

    The Event-Based Gateway (Spec 9.5.2.4) will "decide" what to do with your pool:

    • If Actor decides to start or a message comes from the main pool, some actions will take place;
    • If the process is "sure" that additional pool will not be required, a signal is cast to terminate its instance.