A correlation set provides an identifier between two Web Services so that one can
identify an appropriate message from another. For example, with purchase orders, there might be
several exchanges of messages between the buyer and the seller. You need to ensure that each
message stays with the appropriate conversation.
You can define a correlation set for any of the Web Services system functions: Receive, Reply,
and Invoke. If you are using Parameter mode, the Correlation Set tab is available for Receive,
but not for Invoke. A correlation set is required for any Receive step that is not the first
step after the Launch step.
To correlate a conversation between two processes:
Do the following steps in accordance with the appropriate message type. Parameters
|
- On the Correlation Set tab, select a Web Service parameter
that contains a unique value to differentiate one workflow instance from another. For
example, you might use an invoice number.
- Select the data field in the current workflow definition that contains the value to
be matched. The correlation value to be compared must be a string because all incoming
data is in string format. For example, if the data field in the current workflow
definition were an integer, you can use the following expression to convert it to a
string: convert(field_name, string).
|
XML
|
- On the Correlation Set tab, specify a name for this correlation set. (You can
specify more than one correlation set.)
- Under Properties, specify a name and the XPath Query to the appropriate element in
the schema. You can specify more than one name/XPath Query pair to define the
correlation expression. For example, you might use a combination of an account number
and invoice number to identify the appropriate incoming message.
A template version of the schema displays to help you in
creating the XPath Query. For an example of a correlation set that uses XML, see Web Services Correlation example.
In addition to
setting up the Correlation set in the Receive step, do the following assignment:
assign the correlation value to the system field
F_Corr<Correlation_Set_Name> at some point in the
workflow before the Receive step.
|