Correlation Data

Correlation data must be used to ensure that each global signal event is received by the process instances to which it applies. Global signals are designed to be able to be caught by multiple process instances. If there are multiple process instances with matching correlation data then the signal will be triggered in each one.

In a process, a catch global signal event waits for an incoming signal to arrive. In the runtime environment there may be many instances of the process (each with different data), and many incoming signals (each with different data).

To determine whether a global signal applies to a process instance, the signal's correlation data is compared to the correlation data it is mapped to in each process instance that catches the global signal. Only the catch global signal events in processes that have matching correlation data are triggered. You must initialize the correlation data with a value, before the catch global signal event is initialised (either on the process start event or in a subsequent task, in which case you will need to configure the catch signal event to initialise after that task).

To work with correlation data:

  • Decide whether elements within the incoming data can be used to uniquely identify instances of this process. If the incoming data can be used to identify the process, create a correlation data field in the process and the global signal payload definition. In the catch global signal event map these correlation fields together.
  • In a throw global signal map the data that identifies the required process instances to the correlation field in the signal payload.