The following restrictions apply to flows:
Invoking a flow is supported only where a nonterminal flow (a flow containing Invoke nonterminal nodes) invokes a terminal flow (a flow containing Invoke screen operation nodes) (see About flow types).
The service flow project tools do not allow you to create a recursive invocation of a flow, that is, a flow invoking itself, either directly or through intermediate calls (see A service flow cannot call itself (recursive call)).
Invoked flows are supported only in the CICS® Service Flow Runtime environment, not in the Host Access Transformation Services (HATS) runtime environment (see Which nodes are valid in the supported runtime environments).
Throw node:
Currently, when the Generate Runtime Code wizard is creating COBOL source code for a Web service and encounters a Throw node in the flow from which the wizard is generating the COBOL source code, the wizard ignores the Throw node and does not create a corresponding return point for the Web service in the generated COBOL source code.
The reason is that the Web service can contain only two interface points with the program that invokes the Web service: an input point (represented in the flow by the Receive node) and an output or return point (represented in the flow by the Reply node).
The Generate Runtime Code wizard issues a warning message when it encounters this situation (see CRRZE7343W).
The following limitations apply to flows:
Looping from one node back to another without a While node:
Limitation: The flow editor does not prevent you from adding connections that wire the execution path of a flow back onto itself to an earlier point in the flow's execution path. This situation may not cause errors when you generate runtime code. However it is very likely to lead to errors during runtime processing.
Workaround: When you want part of a flow to be iterated multiple times so long as a certain condition is true, use a While node or a recorded loop (see Recording loops).