Skip to main content
Skip table of contents

Fork and Join

Fork
 Join

To execute two or more independent execution branches using the same input, you can use a Fork component. You can use a Join to bring the separate execution branches together again.

Properties and Parameters

Rotation

Rotation of the component in degrees

Possible values:

  • 0: no rotation (default)

  • 90: rotate by 90°

  • 180: rotate by 180°

  • 270: rotate by 270°

Input and Output

The Fork component passes the input document without modification to all execution branches.

The Join component keeps the output documents of the last executed step of each branch in memory. If the output documents are XML documents, all output documents can be merged together in one XML document using the Merge component. If the branches output a binary document or an XSL mapping outputs dynamic parameters before the Join component, a transfer adapter can process both dynamic parameters and the binary stream.

Using Fork and Join

An execution branch can consist of one or multiple process steps or components.

The branches are not executed simultaneously, but according to the given priority that is displayed on the transitions by a number. You can set the priority of each execution branch in its properties.

Use a Connection component (image-20240812-114116.png ) within Fork/Join constructs where one execution branch has an operation (e.g., an XSL mapping to dynamically parameterize an adapter) and the other branch only passes the input document.

ATTENTION: Unexpected Process Engine behavior!

If you place a loop inside another loop containing a Fork/Join construct, the Process Engine cannot reset the state of already executed elements correctly.

Pack the inner loop with all its process components as subprocess, see Subprocess.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.