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.
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.
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.
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.
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.
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.
Fragments and Parallel Gateways
Fragments are also needed to describe parallel paths of unequal length or uneven structure.
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.
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).