Correlations enable business processes to communicate with each other based on the state of an instance. The state of all the process data objects in a process defines the state of the instance.
When you define a correlation for a business process, you can identify an instance in another process based on the instance state and then send a message to that specific instance.
For example, you can use correlations to communicate a sales process with the corresponding shipping and mailing processes. When the customer confirms an order, the shipping process sends a message to the shipping and mailing processes using a correlation that defines that it uses the order ID to locate the instances in both processes.
I will use a couple of ICS instances to demo this.
Here's the first one - Trigger is a SOAP adapter, Target is the Service Cloud adapter.
All it does is create an Organization in Service cloud.
I configure PCS to point to my ICS instance -
This will be used later, when I browse ICS to retrieve Integrations.
Now to my simple PCS process -
I will call the ICS process when the new organization is approved.
Thanks to my colleague Chris P. for pointing out that I need Username Token here.
I do the data associations, and that's it.
I deploy and test -
I approve the new organization -
It completes successfully -
I check in Service Cloud.
Now I add a mid process receive to the PCS process.
It will wait for a confirmation that the organization has been created.
I will need to add correlation to the process to enable this.
I InitializeCorrelation at the Start activity - setting the property
to the incoming orgName value.
I now add the Message Catch -
Here we wait for the confirmation -
I set the correlation -
I re-deploy and check the wsdl and see the 2 operations -
I now instantiate a new instance of the AppproveOrg process -