#Jump across the diagram with link events
A link throw event continues the process at every link catch event with the same link name on the same level of the diagram, so long flows need no crossing lines.
#How a link connects two places
flowchart LR
subgraph Left["One end of the diagram"]
A["Check order"] --> T(("Link throw<br/>'to-invoicing'"))
end
subgraph Right["The other end"]
C(("Link catch<br/>'to-invoicing'")) --> B["Create invoice"]
end
T -. "same link name" .-> C
A link pair behaves like an invisible sequence flow. Nothing waits and no data is added: the step after the catch reads the same data it would have read right after the throw.
#Configure a link
- Select the link throw event and open Link configuration.
- In Link Name, type a new name under Create a new link and click Add — or click + and Select an existing link.
- Select the link catch event and give it the same name.
The names must match exactly, including upper and lower case.
#Where a link reaches
- ✅ The same level. A throw on the main diagram reaches the catches on the main diagram. A throw inside a sub-process reaches the catches inside that sub-process.
- ❌ Into or out of a sub-process, or into another process. Use the sub-process's input parameters, or a call activity, instead.
- ❌ Inside the tool chain of an agent. Links there are not connected.
⚠️ The list of existing names offers the names of every level of the diagram, including ones that can never connect from where you are.
#Several throws, several catches
- Several throws to one catch are fine: each arrival continues from the catch on its own. They are not merged — two arrivals run the steps after the catch twice.
- Several catches with the same name all start at once, as parallel paths.
- A link may jump back to an earlier point, to repeat steps. Nothing stops such a loop from running forever, so make sure a gateway on the way leaves it.
#What goes wrong if a link is broken
- A throw whose name no catch has is an error in the modeller. ⚠️ It still deploys — and the instance fails when it reaches the throw. Inside a sub-process the modeller does not report it at all.
- A catch whose name no throw has gets a warning.
- A link event without a name is an error and stops the deployment.
The messages are shown in German. See Check that a process can run.
