Process instance relationships

Relationships between process instances can be either independent or dependent. Independent relationships allow a user to view the information about the related instances together. Dependent relationships group process instances together so that a dependent process instance cannot complete until all the instances that it depends on are complete. You can create relationships between cases, between BPDs, and between a case and a BPD.

Independent
A loose grouping of related processes that a user can navigate. The related process instances are peers and the relationship is bidirectional. Deleting a process instance removes the relationship but does not delete the peer process instance.

Image showing independent relationships between process instances

Dependent
A directional relationship between one dependent process instance and one or more process instances that it depends on. A process instance that is depended on can in turn depend on other process instances, forming a tree of dependent instances.

A dependent instance cannot complete until all the instances that it depends on are complete or terminated. If a dependent instance is terminated forcefully, all its dependencies are also terminated, all the way down the dependency tree. To terminate a dependent instance (and, therefore, its dependencies), you must be authorized to terminate all the instances. To keep the dependency instances running, remove the dependency relationship before you terminate the dependent instance. If you still need a relationship between the processes, add an independent relationship instead. For information about terminating processes in the Process Inspector, see Actions in the Process Inspector.

The following image shows case instance A which depends on BPD instance B and case instance C.
Image showing dependent case instance A with two dependency instances B and C. Instance B is complete, A and C are active.
The preceding image shows the following important facts about dependent relationships:
  • A process instance (A) can have multiple dependency process instances (B, C).
  • A dependency process instance (B or C) can have only one dependent process instance (A).
  • Process instance A cannot complete until process instance B and process instance C are both completed or terminated.
  • If process instance A is terminated, process instance B and process instance C are also terminated.
  • Terminating an instance also terminates its relationships except for completed instances. They stay in the completed state.

You can create, delete, update, and query relationships programmatically by using JavaScript API in Process Designer or REST (Representational State Transfer) APIs.