Designer 10.5 | webMethods BPM Process Development Help | Process Engine Processing | Subprocess Concepts | About Subprocess Types
 
About Subprocess Types
In prior releases, subprocesses were built on a unique webMethods container format. Although they supported some BPMN behavior in more recent releases, these containers are referred to as webMethods subprocesses. To fully embrace the potential of BPMN 2.0, a BPMN subprocess type is now supported, referred to as a BPMN subprocess. When you add a subprocess to a process model, it is added as a BPMN subprocess.
Support for the earlier webMethods subprocess type is retained, although this subprocess type is deprecated and support will be withdrawn in a future release. If you import existing process models from previous releases, the webMethods subprocesses in them will continue to function as they did in previous releases, and the process will build as expected. However, you are encouraged to change these subprocess to BPMN subprocesses at your earliest convenience. For more information, see Recommendations On Changing the Subprocess Type.
The key differences in behavior between the two subprocess types are as follows in the table below:
Behavior
webMethods Subprocess
BPMN Subprocess
Looping and Step Count
In standard looping, each loop iteration increments the step iteration counter. Loop counting is not available.
In standard looping, loop counting is provided. Within each loop iteration, each step in the subprocess begins counting at 1.
Subprocess ID
A subprocess does not have an ID.
Each subprocess has a unique ID.
Subprocess status
A subprocess has no status, and exists only as a collection of steps.
A subprocess always has a status, which is the same as the status of the parent process.
Boundary intermediate event
A boundary intermediate event (timer, message, signal, error) on a subprocess is always non-interrupting.
A boundary error intermediate event on a subprocess is always interrupting. Boundary timer, message, and signal intermediate events can be interrupting or non-interrupting.
End Terminate event behavior
An end terminate in a subprocess always terminates the parent process with a configurable status of Completed, Canceled, or Failed.
End terminate behavior is non-selectable and always ends the subprocess only, with no direct effect on the parent process. For more information, see About Terminate End Event Behavior in a Subprocess.
End behavior
The subprocess ends through the use of a hidden OR join that merges the output of all tracks.
The subprocess ends when there are no active tracks remaining in the subprocess.
Subprocess output
The pipeline output from the subprocess is a merge of all tracks in the subprocess.
The pipeline output from the subprocess is from the last completed track only. To join or merge track outputs, you must do so explicitly in the subprocess.
Related Topics