Correlation Data

Correlation data must be used to ensure that each global signal is received by the process instance to which it applies.

The incoming data to catch global signal event is compared to the correlation data in existing process instances to determine whether it applies to that process instance. You must initialize the correlation data with a value subsequently (for example in a script task).

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

To illustrate how using correlation data works, consider the following example:

  • The process is started from a business service or a sub-process. The business analyst or solution designer decides what data can be used to identify whether a signal applies to a given process instance and creates a correlation data field for each required correlation value.
  • After the user task, the catch global signal event (Receive Authorization) waits for the correct incoming authorization. To do this, the solution designer maps the signal payload correlation field representing the Order-Reference to the OrderRef correlation data field in the process. When an incoming signal is received, the incoming data is compared to the correlation data to make sure that it applies to that process instance.