What is Correlation?
BPEL correlation matches inbound messages with a specific process instance. This lets you use a stateful process that you can call multiple times to perform an operation on a “persistent” set of data. When you need to associate specific data to a specific instance of a business process you use correlation.
For example, you are creating a process that verifies an account number and checks the account’s credit limit. When verified, the process makes a call to another system to check inventory and, if the item is in stock, generates a purchase order. How does the purchase order know which account to debit? The answer to this question is correlation.
Correlation sets are used to uniquely identify particular process instances. If a message has to be delivered to a business process, correlation sets are used to reference the process instance with which the message is associated.
You provide each correlation set with a unique name and then define it by one or more properties. Each property has a name and a type (for example, string or int).
You must also define a property alias for each property in the correlation set. A property alias is a mapping that binds the property with the input or output values. Simply, the property alias describes where to find the property values.
Things to know
- A process that contains more than one receive or pick activity must have a correlation set.
- Correlation sets are initialized with values from process inbound or outbound messages.
- If you have groups of messages that are associated together with one specific process, you can set up one or more correlation sets to handle and track the message groups.
For more detailed information about correlation, see the Correlation section in the BPEL specification.
Before You Get Started
Before you can take advantage of correlation you must enable the correlation property tabs. To do this: from the Windows menu, select Preferences > BPEL Properties, clear the Simple Mode option, and check Correlation.