A loop node is a constructed activity node representing a loop with setup, test, and body sections.
Each section is a well-nested subregion of an activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after execution of the loop is completed.
A sequence node is a structured activity node that executes its actions in order.
When the sequence node is enabled, its executable nodes are executed in the order specified. When combined with flows, actions must also satisfy their control and data flow inputs before starting execution.
A conditional node is a structured activity node representing an exclusive choice among a number of alternatives.
A conditional node consists of one or more clauses, each consisting of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed.
- If one or more test sections yield a true value, one of the corresponding body sections will be executed.
- If more than one test section yields a true value, only one body section will be executed.
- The choice is non-deterministic, unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node.
In general, a test section may be executed in any order, including simultaneously if the underlying execution architecture supports it. The result may therefore be nondeterministic if more than one test section can be true concurrently. To enforce ordering of an evaluation, sequencing constraints may be specified among clauses.