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 caught by multiple process instances. If there are multiple process instances with matching correlation data, then the signal is triggered in each one.

In a process, a catch global signal event waits for an incoming signal to arrive. In the runtime environment, there might 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 initialized, you must configure the catch signal event to initialize after the event or task that initializes the correlation data.

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.