When the next expected screen can be one of many screens (it may be one of many screens based on user inputs for example)
we need to define branches. Branches give the navigation the ability to choose between more than one screen to be the next
one. This choice is based on a set of conditions that we call branching conditions.
When a navigation crosses a branch, it looks at the first screen in the branch that we call the branch screen. If this branch
screen matches the currently displayed screen then the navigation enters this branch. If not, then it looks for the next matching
screen either in a following branch navigation or in the main track.
When the current screen is the last screen of a branch, the next expected screen is the first screen that follows the branch.
It may be the first screen of the next branch or the first screen in the main track.
In the illustration below, we encountered an unexpected screen and received a message to that effect. We, therefore, created
a branch under the Sign On node (i.e., Display Program Messages) and continued with our navigation.
Important
If more than one branch has a valid condition (first screen’s definition) that matches the displayed screen then ONLY the
first branch will be visited.