chesterdocs

#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.

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.

  1. Select the link throw event and open Link configuration.
  2. In Link Name, type a new name under Create a new link and click Add — or click + and Select an existing link.
  3. Select the link catch event and give it the same name.

The names must match exactly, including upper and lower case.

  • ✅ 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.
  • 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.