Rational Developer for System z

Flow nodes

This topic describes the various types of flow nodes that can appear on the flow editor canvas.

A node is an icon on the flow editor canvas that represents a single, editable step or instruction in the path of execution. (The path of execution of a flow is called the flow path -- see Flow path). You create and connect nodes to extend and modify the flow path.

Nodes are connected through input terminals and output terminals. Each type of node has, depending on its type, a certain number of allowed input terminals and output terminals, which may be 0, 1, or multiple (described in the tables following). For most nodes each input terminal can have multiple incoming connections and each output terminal can have multiple outgoing connections (see Terminals).

Not all types of nodes are supported in all runtime environments (see Runtimes and node types).
Note: You can use the following features to automatically create a basic flow that already contains a connected a sequence of nodes. You can then use the flow editor to improve the basic flow.

Receive, Reply, and Throw nodes

Receive, Reply, and Throw nodes (described in the following table) define the entry and exit points of the flow:
Table 1. Receive, Reply, and Throw nodes
Type of node: Description: Number of terminals:
Terminal
Receive node:
Receive node
Defines the entry point of a flow. One output terminal
Reply node:
Reply node
Defines a normal exit point from a flow. One input terminal
Throw node
Throw node
Defines an abnormal exit point from a flow. One input terminal

Assign, Switch, and While nodes

Assign, Switch, and While nodes (described in the following table) provide programming features:
Table 2. Assign, Switch, and While nodes
Type of node: Description: Number of terminals:
Terminal
Assign node:
Assign node
An Assign node is associated with a mapping routine that can copy data and optionally perform operations on data (see Where to use mapping routines).
  • One input terminal
  • One output terminal
While node:
Switch node

A While node specifies a loop condition for a While loop (see Basic information about While nodes).

  • One input terminal
  • One output terminal that is taken when the loop variable becomes false.
Switch node:
Switch node
A Switch node has multiple output terminals each associated with an ESQL expression that you specify and that must evaluate to Boolean true or false. The runtime code serially evaluates the ESQL expression associated with each output terminal, and follows the flow path connected to the first output terminal whose expression evaluates to true (see Using ESQL expressions with a Switch node).
  • One input terminal
  • One output terminal for each flow path

Parse node

Table 3. Parse node
Type of node: Description: Number of terminals:
Terminal
Parse node
Invoke nonterminal node
  • You can create a parse node by dragging the Outputs operation of the flow to the flow editor canvas (see How do I add a Parse Node to my flow....).
  • The flow recorder can generate parse nodes during flow recording.
  • One input terminal.
  • One output terminal for each screen description that can be recognized at this point in the flow.
  • One additional output terminal that is taken as a flow branch if none of the screen descriptions associated with the other output terminals is recognized.
You can associate a separate mapping routine with each input or output terminal.

A parse node directs the flow of control based on a recognized screen but does not generate input. Like an Invoke screen operation node, a parse node does screen recognition at its output terminals and sends the flow of control out the output terminal associated with the recognized screen. However unlike an Invoke screen operation node a parse node does not generate input such as AID key.

As with an Invoke screen operation node, each input or output terminal of a parse node can have a separate mapping routine.

An output terminal of a parse node can contain Extract actions for the following Invoke screen operation node. However, the input terminal of a parse node cannot contain Insert actions or a Input action.

See How do I add a Parse Node to my flow....

Invoke nodes in the flow editor

The Invoke nodes (described in the following table) invoke a screen operation, a nonterminal operation, or a flow:
Table 4. Invoke nodes
Type of Invoke node: Description: Number of terminals:
Terminal
Invoke node
Invoke node
  • The flow editor creates an Invoke flow when you select the Invoke entry on the flow editor's palette.
  • An Invoke node is not associated with an operation.
  • One input terminal.
  • One output terminal.
Invoke nonterminal node
Invoke nonterminal node
  • One input terminal.
  • One output terminal.
  • One additional output terminal for each fault message
You can associate a mapping routine with each terminal (see Where to use mapping routines).
Invoke outbound Web service node
Invoke nonterminal node
  • One input terminal.
  • One output terminal.
  • One additional output terminal for the fault message (if specified)
    Note: An Invoke outbound Web service node supports a maximum of one fault message, which by default is the WS_SOAPFAULT_AREA fault message (see The fault message for an Invoke outbound Web service node).
You can associate a mapping routine with each terminal, including terminals that you add (see Where to use mapping routines).
Invoke screen operation node
Invoke screen operation node
Further information about the output terminals:
  • The default output terminal: In the runtime environment, after the invoke screen operation node is performed, the runtime code generated from the service flow project branches to the default output terminal if none of the screen descriptions associated with the other output terminals is recognized.
  • Other output terminals: There should be one output terminal for each application screen that can occur next, and each output terminal should be connected to another screen operation node that handles the next screen. When the Invoke screen operation node is performed, the runtime code generated from the service flow project branches to the terminal corresponding to the screen that occurs next.
  • One input terminal.
  • One default output terminal that is taken as a flow branch if none of the screen descriptions associated with the other output terminals is recognized.
  • One additional output terminal for each screen operation node that can occur next.
You can associate a mapping routine with each terminal, including terminals that you add (see Where to use mapping routines).
Invoke flow node
Invoke flow node
Restriction: An Invoke flow node is supported only where a nonterminal flow (a flow containing Invoke nonterminal nodes) invokes a terminal flow (a flow containing Invoke screen operation nodes.)
  • One input terminal.
  • One output terminal for each Reply node and Throw node in the invoked flow.
You cannot associate a mapping routine with any of these terminals (see Where to use mapping routines).

Feedback