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: [email protected] 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 <[email protected]> wrote: > lets rename "joinCorrelation" property to "correlate" > > Nandika > > On Mon, Feb 8, 2016 at 5:41 PM, Firzhan Naqash <[email protected]> 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 [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
