Sunday, November 17, 2013

Inter Process Communication with Send and Receive Tasks using Correlations


(JDeveloper 11.1.1.6, WLS 10.3.6, SOA/BPM 11.1.1.6)

Following is a simple approach to use inter process communication in BPM using Send and Receive tasks using Correlations.

I created two simple BPM processes, first process as shown below will start and wait at the Wait (Receive Task).
When the process instance is created, the correlation also gets instantiated.
In this case, the correlation key is the input parameter to the Start task of the process.
It takes the input and sets the correlation key for that process instance.

First we need to Initiate the correlation keys at Start.
Also, we have to set the data mappings.



Then we need to use the Correlation keys on the Wait (Receive Task)



The second process is the process which will call the first process with a Send activity by passing the value of the data for specifying which process instance to pick up using the correlation key.
We use the Send message activity to call the First process by passing the value of the correlation key to get the correct process instance.



Testing

I instantiated 3 instances of the first process with data values 101, 102, 103 (these are set as correlation keys)


I called the second process by passing the value 102.


The second process completes and which calls the instance 102 of the first process at the receive task and because of which the 102 instance is also completed.