BPMN Sketch Miner

Docs - Fragments

Fragments

Fragments are used to list incomplete task sequences which should be attached to other task sequences. Use fragments to avoid repeating too many lines in your text.

Fragments are task sequences which begin or end with ... (or both).

To see how fragments can help you write less text, let's consider the following process where two sequences contain many common tasks, until they reach different outcomes at the end.

EditCreate Application
Prepare Application
Submit Application
Check Application
Accept Application

Create Application
Prepare Application
Submit Application
Check Application
Reject Application

Branching Fragments

We can avoid repeating the initial tasks by transforming the second sequence into a fragment.

The fragment begins with ... to indicate that there are some other tasks before it. This is followed by the name of the common task (the last task shared with the first sequence). Then we list the task(s) that should split from the common task.

EditCreate Application
Prepare Application
Submit Application
Check Application
Accept Application

...
Check Application
Reject Application

Notice that the process looks the same as the previous one, we just reduced the number of lines in our textual description.

Merging Fragments

Fragments can also be open ended.

In this case we finish the last fragment with the common task followed by ... (to indicate that this sequence is an open-ended fragment). The tasks listed at the beginning of the fragment will be used as an alternative path which can be followed to begin the process.

EditCreate Application
Prepare Application
Submit Application
Check Application
Accept Application

...
Check Application
Reject Application

Duplicate Application
Revise Application
Submit Application
...

For this example, we used one sequence and two fragments.

The equivalent textual description without fragments would contain two sequences, describing the two possible distinct paths through the process.

EditCreate Application
Prepare Application
Submit Application
Check Application
Accept Application

Duplicate Application
Revise Application
Submit Application
Check Application
Reject Application

Split and Merge Fragments

Fragments can also begin and end with .... This can be used to describe branches which split and then merge back in the main flow.

Edit(receive Application)
Check Application
Accept Application
Get VP Signature
(send Outcome)

...
Check Application
Reject Application
Get VP Signature
...

While in the example both the complete sequence and the fragment have the same length, in case you need to extend or modify the main sequence before or after the common tasks, the fragment will remain unaffected.

Loopback Fragments

When looking at the main sequence, if the common task at the end of the fragment is found before the common task starting the fragment, then the fragment will produce a loop.

EditCreate Application
Prepare Application
Submit Application
Check Application
Accept Application

...
Check Application
Reject Application

...
Check Application
Return Application
Revise Application
Submit Application
...

Fragments and Parallel Gateways

Fragments are also needed to describe parallel paths of unequal length or uneven structure.

Edit(receive Application)
Inspect Application|Get References
...

...
Inspect Application
Check CV|Check Portfolio
Fill out scoresheet
...

...
Get References
Receive Feedback
Check References
Write Summary
...

...
Fill out scoresheet|Write Summary
Hiring Committee Meeting

To do so, the parallel split is followed by ..., to mark that there will be a fragment to describe what happens after each task listed on the parallel split line (separated by |).

At the bottom, we also use the ... before the parallel merge, to indicate that there will be a fragment ending with the task listed on the parallel merge line (also separated by |).

In the middle, there are two fragments that begin and end with .... The first task of each fragment is one of the tasks mentioned on the parallel split and the last task of each fragment is one of the same tasks mentioned on the parallel merge.

Fragments and Link Events

In case the tasks at the beginning or at the end of a fragment do not match any other sequence, the fragment will be displayed attached to a link intermediate event.

EditSubmit Application
...

...
Hiring Committee Meeting

We call these mismatching fragments open-ended, and use the intermediate throw link event to indicate that your model does not contain any fragment which can continue the current one. Conversely, we use the intermediate catch link event to indicate that your model does not contain any other fragment which can be continued by attaching it to the current one.

Link events are not shown if the fragments match other fragments (like in the previous examples).

More Examples