Sure Nandika.

I have renamed it and completed the implementation as well. Further
information can be found on the following post [1]

[1] 
http://firzhanblogger.blogspot.com/2016/02/how-to-perform-correlation-during.html
<http://firzhanblogger.blogspot.com/2016/02/how-to-perform-correlation-during.html>

Regards,
Firzhan


-- 
*Firzhan Naqash*
Senior Software Engineer - Integration Platform Team
WSO2 Inc. http://wso2.com

email: firz...@wso2.com
mobile: (+94) 77 9785674 <%28%2B94%29%2071%205247551>*|
blog: http://firzhanblogger.blogspot.com/
<http://firzhanblogger.blogspot.com/>  <http://suhothayan.blogspot.com/>*
*twitter: https://twitter.com/firzhan007 <https://twitter.com/firzhan007> |
linked-in: **https://www.linkedin.com/in/firzhan
<https://www.linkedin.com/in/firzhan>*

On Tue, Feb 9, 2016 at 11:58 AM, Nandika Jayawardana <nand...@wso2.com>
wrote:

> lets rename "joinCorrelation" property to "correlate"
>
> Nandika
>
> On Mon, Feb 8, 2016 at 5:41 PM, Firzhan Naqash <firz...@wso2.com> wrote:
>
>>
>> Hi,
>>
>> In the BPS 3.5.1 onward, we have introduced a correlation API to
>> explicitly perform correlation operation [1] .
>>
>> In addition, we have another requirement to support functionality similar
>> to join correlation in BPEL. As per the new requirement, when ever we get a
>> request to start a process instance, we should follow the following
>> procedure.
>>
>>
>>    - We have to check for existing instance to correlate.
>>    - If there are no instance to correlate, then we can proceed with the
>>    instance creation
>>    - If there is an instance to correlate, then we have to resume from
>>    the place where the instance is paused.
>>
>>
>> The above scenario will work only for the message based correlation.
>>
>> *Scenario 1*
>> =========
>>
>> In order to implement this functionality, we are planning to add a
>> Boolean flag to enable join correlation during the instance startup. If
>> this flag is disabled, there won't be any join correlation operations.
>>
>> This will be the sample request to start an instance
>>
>> {
>> "processDefinitionId":"myProcess:1:2508",
>> *"messageName":"resumeMessage",*
>> "variables": [
>> {
>> "name":"var1",
>> "value":"a1"
>> }
>> ], "skipInstanceCreationIfExist":true, * "joinCorrelation":true*
>> }
>>
>>
>>
>> As per above request  message, variables defined inside "*variables*"
>> can be used to either correlate with the existing instance. If there are no
>> instances defined, the variables defined insides the "*variables*" json
>> array will be added to the process instance. In addition, we have to add "
>> *messageName*" filed to perform correlation as well.
>>
>>
>> *Scenario 2*
>> =========
>>
>> Another important feature with the BPS 3.5.1 is that we are performing
>> authorization of the users/groups during the process instance startup. In
>> some occasions users can defines the candidate users/groups with the
>> variable assignment like this ${group1} etc ...
>>
>> In the above scenario, previously users can define those variables like "
>> *group1*" inside the "*variables*" json array like below mentioned.
>>
>> {
>>    "processDefinitionId":"myProcess:1:2508",
>>    "messageName":"resumeMessage",
>>    "variables": [
>>       {
>>         "name":"var1",
>>         "value":"a1"
>>       },
>>     *  {*
>> *        "name":"group1",*
>> *        "value":"admin"*
>> *      }*
>>    ],
>>    "skipInstanceCreationIfExist":true,
>>    "joinCorrelation":true
>> }
>>
>> But this type of implementation may create some unwanted complexity
>> during the correlation. In addition there might be scenarios where users
>> want to check the existence/correlate with only certain variables like
>> var1, var2 etc ... But on the other hand users might not want to correlate
>> with the variables like var3, var4 etc ...
>>
>> In order to achieve this functionality we can have a separate variable
>> array like
>> "*additional**variables*".
>>
>> Therefore the suggested proposed json request message to achieve joint
>> correlation will be like this.
>>
>> {
>>    "processDefinitionId":"myProcess:1:2508",
>>    "messageName":"resumeMessage",
>>    "variables": [
>>       {
>>         "name":"var1",
>>         "value":"a1"
>>       }
>>    ],
>>    "additionalVariables": [
>>        {
>>         "name":"group1",
>>         "value":"admin"
>>       },
>>        {
>>         "name":"var2",
>>         "value":"a2"
>>       }
>>    ],
>>
>>   "skipInstanceCreationIfExist":true,
>>    "joinCorrelation":true
>> }
>>
>>
>> Please provide your valuable feedback and suggestion over the proposed
>> solution.
>>
>> Regards,
>> Firzhan
>>
>>
>>
>>
>
>
> --
> Nandika Jayawardana
> WSO2 Inc ; http://wso2.com
> lean.enterprise.middleware
>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to