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: |
| Receive node: |
Defines the entry point of a flow. |
One output terminal |
| Reply node: |
Defines a normal exit point from a flow. |
One input terminal |
| 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: |
| 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: |
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: |
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: |
| Parse 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: |
| 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 |
- An Invoke nonterminal node is created when you associate a nonterminal
operation with an Invoke node.
- See the following:
|
- 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 |
- An Invoke outbound Web service node is created when you associate
an outbound Web service operation with an Invoke node.
- See the following:
|
- One input terminal.
- One output terminal.
- One additional output terminal for the fault message
(if specified)
You can associate a mapping routine with each
terminal, including terminals that you add (see Where to use mapping routines). |
| Invoke screen operation node |
- An Invoke screen operation node is created when you associate
a screen operation with an Invoke node.
- See the following:
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 |
- An Invoke flow node is created when you associate an external
flow with an Invoke node.
- See the following:
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). |