0

I need to model a set of tasks in BPMN v2:

1.0 a report is sent out

following which two paths emanate:

  • 2.0.1 report is further formatted, followed by
  • 2.0.2 additional information is added to the report
  • 2.1.1 report is reviewed, followed by
  • 2.1.2 information on the report is acted upon

3.0 further action is taken

I am unable to figure out how to show the following:

(a) 2.0.1, 2.0.2 and 3.0 are executed by the same role that executes 1.0.

(b) from the moment 1.0 is completed, 2.0.1 and 2.0.2 are to be completed within 2 weeks of that. and then, 3.0 occurs.

(c) 2.1.1 and 2.1.2 are to be (in principle) completed within the same 2-week period, but in case these are not complete, 3.0 needs to start exactly 2 weeks after 1.0.

Can i show the "2-week" stipulation using some combination of event-based gateway, or timer(s) and so on? If so, how?

Here what I have so far:

illustration

Christophe
  • 74,672
  • 10
  • 115
  • 187
Kan Yan
  • 11
  • 1
  • You specify such information as a "Comment". – NoChance Sep 07 '19 at 05:46
  • It took me a few minutes of scrutinising to realise that what you're really saying is that there is a fork into two threads here, and the second one is held either until the first completes, or until 2 weeks have passed waiting (at which point the second thread proceeds without waiting any longer for the first). Your diagram scarcely corresponds to this. – Steve Apr 19 '23 at 05:02

1 Answers1

0

You have well identified the tasks and used (a) to identify two different streams corresponding to different roles.

Here some improvements that you should consider:

  • Clarify the different roles formally, by using two different swimlines.

  • It would also be nice to show the start and the end of the flow.

  • As the sequencing of 2.0.1 and 2.1.1 is related to the sharing of the same report, and not two independent sequence flows, you should use only one outgoing flow from 1.0, and use a gateway to split the flow (hint: it's a parallel fork).

  • The informal doted grouping that you have for 2.0.1 and 2.0.2 should be replaced by a formal subprocess.

  • Reading narrative (c) suggests to create a subprocess also for 2.1.1 and 2.1.2

Now to the time-related modelling. These are related to timer events:

  • Narrative (b) expresses an interrupting timer event: the subprocess has to be performed within the given time, and once the time elapsed, the subsequent task is triggered. You should model this with is an interupting boundary timer event.

  • Narrative (c) expresses at first sight a non-interupting timer event: when the time is reached, the next task is to be performed, but the current task may continue. But you could as well put no boundary timer event here, and put an additional timer even to the parallel fork, that would join before 3.0

Christophe
  • 74,672
  • 10
  • 115
  • 187
  • Christophe - I am very thankful for your detailed recommendation. I will attempt to model this, based on what I understand, and come back here with an illustration. – Kan Yan Apr 09 '19 at 21:19
  • MS Visio 2016 Pro isn't allowing me to put swimlanes inside of an Expanded Sub-process. Due to this, I am unable to model your recommendation for Narrative (b). I am attempting to use Expanded Sub-process so that I could set a boundary event. – Kan Yan Apr 10 '19 at 01:20
  • I love how in the "parallel fork" link (from 2006), the author comments over several years "I won't be using BPMN for a while", to "I haven't used it in a while myself", to (in 2015) "I haven't used it in years"! – Steve Apr 19 '23 at 04:53
  • @Steve Considering that BPMN was launched in 2004 by the BPMI consortium, it's the right of the author of that article to be an early adopter in 2006 and to evolve in his career to no longer use it 5 (2011) or 10 years (2015) later. It doesn't invalidate the answer, does it ? ( by the way, BPMN 1.0 was easy to read for a broad audience, including business users, whereas BPMN 2.0, while being more precise also became more difficult to understand for people who do not dig daily in OMG litterature ;-) ) – Christophe Apr 19 '23 at 18:43
  • @Christophe, agreed. It was no bad reflection on your answer, it just gave me a wry smile to learn that even the linked author had left it all in his past! Some BPMN concepts have actually got me thinking, how *do* you represent an "interruptible section" in a traditional programming language? – Steve Apr 19 '23 at 20:58