Join operator
Overview
The Join operator controls the flow by merging branches, that is sub-flows. It is the symmetric of the Fork operator.
The use of the Join operator is not mandatory, because it is equivalent to directly connect more blocks to the same downstream block. However, using this operator together with Fork makes the diagram more readable. Also, a Join block has the Maximum number of flow branches that can fail without propagating the error property which can be configured to customize error management.
Versions
There are two versions of the component available: 1.0.0 and 1.1.0. Version 1.0.0 is present for backward compatibility with old workflows created with previous versions of NL Flow. For new workflows always use the latest version.
A version 1.0.0 block doesn't have the Maximum number of flow branches that can fail without propagating the error property described below.
Input
A Join block doesn't have input variables. Its implicit input is the output of the blocks immediately upstream of it.
Block properties
Block properties can be set by editing the block.
A Join operator block has these properties:
- Block name
- Component version (read only)
- Block ID (read only)
- Maximum number of flow branches that can fail without propagating the error: the value 0 indicates that any error of any upstream branch makes the Join block produce an error which can lead to a general workflow error. A different value, integer and positive, indicates the maximum number of branches whose errors are ignored, so to have Join aggregate the output of the other, non failing, branches and not raise an error.
Even if errors are ignored they are still visible in the verbose output of the workflow.
Output
The output of a Join block is a JSON object that represents the composition of the outputs of the blocks directly upstream of it.
It has this structure:
{
ID of the first upstream block: {
Output of the first upstream block
},
ID of the second upstream block: {
Output of the second upstream block
},
...
ID of the last upstream block: {
Output of the last upstream block
}
}