A subprocess is a process that starts after another process calls it. To create a subprocess, add a specific step to a process in the life cycle of a case or add specific shapes to a flow diagram. Subprocesses modularize the events in the life cycle of a case and increase reusability of your resources, as you can implement the same subprocess in multiple scenarios.In a sample scenario, you can run a subprocess of collecting user feedback in multiple case types, such as reviewing a loan request, resolving a credit card dispute, and processing an insurance claim. Additionally, subprocesses can reduce case resolution time because they allow for processing of case events in parallel. For example, in a case of preparing onboarding for a new hire, you can create subprocesses for an IT setup and facilities setup. Different workers can move each process forward, independently and in parallel, which leads to faster case resolution.
You can configure different types of subprocesses to meet your business requirements. When implementing subprocesses into your case types, you have following options:
In Case Designer, you can add a step that represents an existing process in your application. A case moves forward after the subprocess finishes. For example, in a Review stage of a Hire a job candidate case type, you can add a subprocess that represents running a background check. Internally, the subprocess consists of a series of steps, such as checking the criminal record and social security. As a result, you can maintain all the common business functionality with the subprocess for easier updates and clarity. Also, adding an entire process instead of single steps saves time and promotes the reuse of your application resources.
The following figure shows a Process step in a Review stage:
For more information, see Calling one process from another process.
In a flow diagram, you can add a Subprocess shape to a process in your case type. In the background, a Subprocess shape is the same entity as a Process step that you add through Case Designer, and both options have the same run-time effect. However, by adding a Subprocess shape through a flow diagram, you have more configuration options than a Process step. Additionally, in Dev Studio, you can configure advanced options for the Subprocess shape, such as defining a working context for a case. You can also start a subprocess as a spin-off. As a result, the subprocess runs independently from the main case, and the case can move forward without waiting for the subprocess to finish. For example, in an Items purchase case type, if the customer wants to buy more items than are currently in stock, an application can start a spin-off subprocess to order more items from a supplier. The subprocess runs independently, and the Items purchase case can reach resolution without waiting for the subprocess to rejoin.
The following figure shows a flow diagram with a process that includes an Order from a supplier subprocess. The arrows icon indicates that the subprocess is a spin-off. The image includes also a dialog box with subprocess configuration.
For more information, see Adding additional configuration to a subprocess.
Split Join shape
In a flow diagram in Dev Studio, you can add a Split Join shape that starts multiple instances of different subprocesses that later rejoin the main process. Based on the configuration that you provide, a case moves forward when one or more subprocesses rejoin the main process. For example, in a case of reviewing a loan request, you can use a Split Join shape to start subprocesses of reviewing a monthly income and banking history of an applicant. Different case workers can work on those subprocesses in parallel, which saves time.
The following image shows a flow diagram with a process that includes the Split Join shape. The Split Join shape calls two subprocesses: Check monthly income and Check banking history.
For more information, see Running multiple instances of different subprocesses with a Split Join shape.
A Split for Each shape
In a flow diagram in Dev Studio, you can add a Split for Each shape that runs multiple instances of the same subprocess. Based on the configuration that you provide, a main process resumes after one or more subprocesses rejoin the main process. You can also iterate a subprocess through all items on a page list that you provide, such as a list of managers. For example, in a Hire a new candidate case type, you can use a Split for Each shape to route a Review documents subprocess to multiple managers that need to review documents from a job candidate. The Split for Each shape routes work dynamically by using a page list, so in one instance of the Hire a new candidate case three managers might need to complete the Review documents, while in another instance the approval is required only from two managers, as the Split for Each shape generates the Review documents subprocess for each manager added to the case. Configuration options determine if all managers, any, or some need to approve before the case can proceed. The managers can review documents and complete the subprocess in parallel.
The following figure shows a flow diagram with a process that includes the Split for Each shape and a dialog box with a shape configuration. The Split for Each shape routes a Review documents subprocess to all managers that are listed in the .ListManagers page list. The system populates the page list dynamically for each instance of a case at run time.
For more information, see Running multiple instances of the same subprocess with a Split for Each shape.
- Calling one process from another process
Make your business processes more granular by complementing a process with a subprocess in your case life cycle. As a result, you avoid creating long and complex case types and deliver an application that is easier to maintain and edit if your business requirements change. Additionally, you save time because you reuse assets across your application.
- Adding additional configuration to a subprocess
Provide access to relevant resources, such as properties or rules, that are outside your current case type by changing the scope of a subprocess in the case type. As a result, you ensure that users can access information that is necessary to successfully resolve their business processes even if the resolution requires data from another case.
- Running multiple instances of different subprocesses with a Split Join shape
Divide your independent business requirements into multiple processes by calling two or more subprocesses that later rejoin the parent process. As a result, you develop a granular and flexible application that you can conveniently adjust to your changing business requirements instead of creating long and complicated case types.
- Running multiple instances of the same subprocess with a Split for Each shape
Speed up case resolution by creating multiple instances of one subprocess that users can work on simultaneously and that later rejoin the parent process. Consequently, you provide tools for users to work in parallel and remove the risk of blocking users during case processing.
Previous topic Adding a results-based path to a flow Next topic Calling one process from another process