Exit from value | Description |
$parent | Immediately exits from the parent flow step regardless of the flow step type. |
$loop | Exits from the nearest ancestor LOOP or REPEAT flow step. Exiting a $loop with failure from within a TRY, CATCH, or FINALLY step is not permitted if the EXIT step is an immediate child of the TRY, CATCH, or FINALLY step. This is considered to be a Flow definition error. This results in a FlowException and immediate termination of the flow service. It is possible, however, to exit a $loop with failure from within more deeply nested steps inside of the TRY, CATCH, or FINALLY, as long as the failure is handled (for example by a SEQUENCE step configured to exit on done) before control returns to the TRY, CATCH, or FINALLY step. When exiting from a LOOP step, Integration Server does not copy the current value of the output variable into the output array. This is true even if the LOOP step contains a MAP step or INVOKE step that maps or sets the value of the output array variable. Exiting from a LOOP prevents normal completion of the body of the LOOP step, which, in turn, prevents the copying of the value of the output array variable to the pipeline. |
$flow | Integration Server exits from parent flow steps of the EXIT step until reaching the top of the flow service. An exit from value of $flow indicates that Integration Server exits the entire flow service. Exit from $flow with failure is immediate and Integration Server does not execute any intervening CATCH or FINALLY steps. Exit from $flow with success will execute any intervening FINALLY steps between the EXIT and the top of the Flow. |
$iteration | Exits from the current iteration of the nearest parent LOOP or REPEAT step. Integration Server terminates the current iteration of the parent LOOP or REPEAT step nearest to the EXIT step. Integration Server then starts execution of the next iteration of the LOOP or REPEAT step. Note: When exiting from an iteration, the EXIT must signal success. Exiting from an iteration and signaling failure is not allowed and, when executed, results in a FlowException and immediate termination of the flow service. Note that an EXIT step can signal failure when exiting from a $loop. Note: When exiting from an iterationIntegration Server does not roll back any actions that occurred before execution of the EXIT step. For example, if the output of the iteration is set in the output array variable before the EXIT step executes, the iteration output will still appear in the output array variable. Within a LOOP step, an exit $iteration executed from a containing TRY, CATCH, or FINALLY step causes an abrupt completion of that step and any intervening steps up to the LOOP step. An abrupt completion of a FINALLY step with an uncaught failure results in the failure being discarded. Within a REPEAT step, an exit $iteration executed from a containing TRY, CATCH, or FINALLY step causes an abrupt completion of that step and any intervening steps up to the REPEAT step. An abrupt completion of a FINALLY with an uncaught failure results in the failure being discarded. This can result in repeat-on failure becoming a success and completing the execution of the REPEAT step. |
label | Integration Server exits parent flow steps until reaching the flow step with the specified label. The specified label must be an ancestor flow step to the EXIT step. If it is not, the flow service ends with a FlowException. Exiting from a label with failure from within a TRY, CATCH, or FINALLY step is not permitted if the EXIT step is an immediate child of the TRY, CATCH, or FINALLY step. This is considered to be a Flow definition error and results in a FlowException and immediate termination of the flow service. It is possible, however, to exit from a label with failure from within more deeply nested steps inside of the TRY, CATCH, or FINALLY, as long as the failure is handled (for example by a SEQUENCE step configured to exit on done) before control returns to the labeled step. |