Route validation rules for a workflow

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-03-13 12:15
Draft comment:
This topic was viewed 1 times since its publication
The steps and routing in a workflow must be valid before you can deploy the solution. When you are connecting steps, follow the route validation rules to ensure that your workflow is valid without route errors.

In the following diagrams, each step is represented with a circle and each route is represented with an arrow. The arrow indicates the direction of the step processing. The diagrams are simplified versions of how a workflow map looks in the editor.

The following route rules are enforced during workflow validation:

The workflow starts at the launch step; all steps must be reachable from the launch step.
Your map must include connectors between steps, and the direction of the route must be consistent.
The following illustration shows an invalid map with steps that cannot be reached:
Figure 1. An invalid map with steps that cannot be reached
Invalid map with steps that cannot be reached
In the illustration, two steps cannot be reached:
  • The step at the lower left is not connected by any route
  • The route from the last step on the right goes in the opposite direction of the rest of the route flow, and the step can never be reached.
Maps must be properly and fully nested with regard to AND-splits and AND-joins, which means that all of the following conditions must be true:
  • For each AND-split step, there must be one AND-join (collector) step. The AND-join step can immediately follow the AND-split step, or there can be one or more steps in between.

    The following illustration shows a valid map with all routes from a split meeting at a join step:

    Figure 2. A valid map with all routes from a split meeting at a join step
    Valid map with all routes from a split meeting at a join step

    In the illustration, all three routes from the split meet at the join step.

  • All paths from the AND-split step can meet at the AND-join step, or one or more paths can end, that is, stop without going to the AND-join step. A path is defined as a sequence of contiguous routes that can be followed between a set of steps.

    The following illustration shows a valid split with one path terminated before join step:

    Figure 3. A valid split with one path terminated before the join step
    Valid split with one path terminated before the join step

    In the illustration, one path from the split step ends at step A, but the paths with steps B and C proceed to the collector step (join). Note that at least one path from the split step must go to the join step.

  • A path that passes through an AND-split step cannot return to that step without first passing through the corresponding AND-join step.

    The following illustration shows an invalid route with one path returning to the split step:

    Figure 4. An invalid route with one path returning to the split step
    Invalid route with one path returning to the split step

    In the illustration, the cycle from step C back to the split step is not valid. Any path from step C must pass through the join step.

  • A path that passes through an AND-join step cannot return to that step without first passing through the corresponding AND-split step.

    The following illustration shows an invalid route that passes only through the join step:

    Figure 5. An invalid route from step D that passes only through the join step
    Invalid route from step D that passes only through the join step

    In the illustration, the route from step D goes to the join step without passing through the split step, and the cycle from step D to the join step is not valid. To create a valid cycle, the path must first pass through the split step.

  • All paths that pass through an AND-join step must first pass through the corresponding AND-split step.

    Figure 6. An invalid route connecting directly to join step without passing through split step
    Invalid route connecting directly to join step without passing through split step

    In the illustration, the path from step D is not valid because it did not first pass through the split step.