Chapter 4. Subcases

Subcases provide the flexibility to compose complex cases that consist of other cases. This means that you can split large and complex cases into multiple layers of abstraction and even multiple case projects. This is similar to splitting a process into multiple subprocesses.

A subcase is another case definition that is invoked from within another case instance or a regular process instance. It has all of the capabilities of a regular case instance:

  • It has a dedicated case file.
  • It is isolated from any other case instance.
  • It has its own set of case roles.
  • It has its own case prefix.

You can use the process designer to add subcases to your case definition. A subcase is a case within your case project, similar to having a subprocess within your process. Subcases can also be added to a regular business process. Doing this enables you to start a case from within a process instance.

You can find the Sub Case asset in the case definition process designer Object Library, under Cases:

case management subcase designer

The Sub Case Data I/O window supports the following set of input parameters that enable you to configure and start the subcase:

case management subcase dataio
Independent
Optional indicator that tells the process engine whether or not the case instance is independent. If it is independent, the main case instance does not wait for its completion. The value of this property is false by default.
GroupRole_XXX
Optional group to case role mapping. The role names belonging to this case instance can be referenced here, meaning that participants of the main case can be mapped to participants of the subcase. This means that the group assigned to the main case is automatically assigned to the subcase, where XXX is the role name and the value of the property is the value of the group role assignment.
DataAccess_XXX
Optional data access restrictions where XXX is the name of the data item and the value of the property is the access restrictions.
DestroyOnAbort
Optional indicator that tells the process engine whether to cancel or destroy the subcase when the subcase activity is aborted. The default value is true.
UserRole_XXX
Optional user to case role mapping. You can reference the case instance role names here, meaning that an owner of the main case can be mapped to an owner of the subcase. The person assigned to main case is automatically assigned to the subcase, where XXX is the role name and the value of the property is the value of the group role assignment.
Data_XXX
Optional data mapping from this case instance or business process to a subcase, where XXX is the name of the data in the subcase being targeted. This paramerter can be provided as many times as needed.
DeploymentId
Optional deployment ID (or container ID in the context of Process Server) that indicates where the targeted case definition is located.
CaseDefinitionId
The mandatory case definition ID to be started.
CaseId
The case instance ID of the subcase after it is started.