Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved


Process Modeling Concepts : Sub-Processes

Sub-Processes
Some activities can contain further steps, or sub-processes.
There are two types of sub-process that are described in this section, embedded and reusable..
Reusable Sub-processes
When identifying the process components you require for your business process, it is important to analyze the entire business. One way to do this is by thinking in terms of the products, services and resources (by considering the specifications for each).
To facilitate the re-use of process components, an activity (or several activities) can call another process as a reusable sub-process. The reusable sub-process could be a process that you have already created, or you can refactor activities in your current process into a reusable sub-process (see Refactoring Sub-Processes).
Activities that contain a reusable sub-process look like this in the Process Editor:
Click the plus sign (+) in the activity to view the sub-process.
An activity of this type defines a call-out to another process:
Embedded Sub-processes
An embedded sub-process is one that is fully contained within the parent process; it does not exist as a separate process:
In this example, Run Credit Check is an embedded sub-process. This implies that running a credit check is an activity that is not needed by other processes. If you subsequently decide that you want to be able to run a credit check from within other processes, you can expose the embedded sub-process as a reusable sub-process by refactoring it. See Refactoring Sub-Processes.
An embedded sub-process has the following characteristics:
In this example, Run Credit Check is an embedded sub-process. This implies that running a credit check is an activity that is not needed by other processes. If you subsequently decide that you want to be able to run a credit check from within other processes, you can expose the embedded sub-process as a reusable sub-process by refactoring it. See Refactoring Sub-Processes.
To create an embedded sub-process, refactor one or more objects in your process as described in Refactoring Sub-Processes.
If you want to use the chained execution resource pattern, you can do so by selecting the Chained Execution check box in the Properties view for the embedded sub-process. For more information, see Chained Execution.
Refactoring Sub-Processes
Refactoring a sub-process allows you to do the following:
Dynamic Sub-Processes
Dynamic sub-processes are used when a process (which can be either a business process or a pageflow process) calls one of several sub-processes at runtime, but it is not known at design time which of these sub-processes will be called. The exact sub-process to be called on any given occasion is chosen at runtime, depending on the process data. For example, a corporate HR Department’s recruitment process might need to call different sub-processes for determining a candidate’s eligibility for employment depending on the country where the candidate is recruited.
In order for the main process to be able to accommodate any of the sub-processes that might be called, the sub-processes must all take and return a common set of data, which is known at design-time. This common data is specified by a process interface on which all the sub-processes are based. A Reusable Sub-Process task in the main process then specifies a call to the process interface instead of naming an individual sub-process.
Transactions
A sub-process (either embedded or independent) can be specified as a transaction using the Is a transaction check box. This means that the behavior of the sub-process is governed by a transaction protocol (defined in the runtime environment). This is indicated by a double-line around the activity:
Typical outcomes of a transaction sub-process that you should cater for are success and cancel. For more information, refer to the BPMN specification (see http://www.bpmn.org).

Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved