Create subjob activity
A subjob is an entirely self-contained process, which can be invoked by the parent process.
A Subjob activity is typically used when processes have been decomposed for reusability and readability purposes. For example, in a Banking process, the main purpose of a Credit Check subjob is to complete a credit check and return a customer’s credit rating. The main process is unaffected by the implementation of the subjob , as long as the credit rating result is relayed back to the main process so a bank clerk can continue to process the loan application. The Credit Check subjob could potentially be reused in a number of key business processes, such as loan applications, credit card applications, and mortgage loans.
The difference between a Subjob and Create new job activities is that the path in the parent launching the job waits until the subjob returns, thus permitting data to not only be passed to the subjob, but also returned from it.
The difference between a Subjob activity and an embedded process is that none of the variables, milestones and the rest of the subjob are added to, or inherited from the parent.
With a subjob activity, outputs can be mapped even if the specified process map from which to create a subjob is not synchronous.
By applying workflow rules, you can create one or more subjobs within a business process. When workflow rules are used, a subjob is created for each resource allocated to the Subjob activity. See Add a Create subjob activity with advanced workflow rules.
Only a single subjob is created when workflow rules are not being used. The Subjob activity does not display on the work queue of any resource.
- You can include a synchronous create subjob process within an asynchronous map. But you cannot include an asynchronous create subjob process in a synchronous map.
- If the parent map is synchronous, the synchronous create subjob process is performed synchronously.
- If the parent map is asynchronous, the synchronous or asynchronous create subjob process is performed asynchronously.