IBM Business Process Manager


Dynamic participant group bug?


Hi,
We defined participant group PG1 with using expression who have an attribute locale equal to "en". It works as expected on a running process - if we change user attribute Locale to something other then "en" that user doesn't see Human task assigned to Lane Participant with default lane participant group set to PG1.
But then we defined participant group PG2 with using expression who belong to participant group PG1 and create Human task assigned to Lane Participant with default lane participant group set to PG2. We expected the same behavior as in first case on running process. But when we change user attribute Locale to something other then "en" that user still can see and run that task.
Is it a bug or a normal behavior?
(We are using BPM 8.0.1.)
We had a similar problem so I tested a little bit and this is what I found:
1. Case with pg with only one user attribute equal to some string. It works ok (task is not visible in process portal any more) after refresh in Process admin console in Role binding section and after I click play button from Inspector in Process designer an list of user showed up.
2. Case with pg with user attribute equals to some variable from process. It works ok after refresh from Inspector in Process designer. Then task were not visible after I change users attribut to be not equals to process variable. Problem is that it is not working properly after refresh in Process admin console and user can start and finish the task.
3. Case with pg that have pg from case 1 in it. It works ok after refresh from Process admin console, but not ok after refresh from Inspector in Process designer.
It seems that combining these 2 refreshes we could make this work ok. It is not a problem to refresh participant groups when is not defined with process variable, the code is: TWParticipantGroup.refresh().
My question is how to make a 'pg refresh' script for participant group defined with process variable (something like Play button on Inspector in Process Designer)?
(We are also using BPM 8.0.1.)
uvaman
270004PHNG
‏2013-06-14T13:29:39Z
We had a similar problem so I tested a little bit and this is what I found:
1. Case with pg with only one user attribute equal to some string. It works ok (task is not visible in process portal any more) after refresh in Process admin console in Role binding section and after I click play button from Inspector in Process designer an list of user showed up.
2. Case with pg with user attribute equals to some variable from process. It works ok after refresh from Inspector in Process designer. Then task were not visible after I change users attribut to be not equals to process variable. Problem is that it is not working properly after refresh in Process admin console and user can start and finish the task.
3. Case with pg that have pg from case 1 in it. It works ok after refresh from Process admin console, but not ok after refresh from Inspector in Process designer.
It seems that combining these 2 refreshes we could make this work ok. It is not a problem to refresh participant groups when is not defined with process variable, the code is: TWParticipantGroup.refresh().
My question is how to make a 'pg refresh' script for participant group defined with process variable (something like Play button on Inspector in Process Designer)?
(We are also using BPM 8.0.1.)
More...
I suspect the problems being described here have to do with when group membership gets evaluated as well as user attributes. Most of these items get checked when the user logs in and do not get refreshed without a specific action such as a cache reset or full user synch. So for the use cases you are talking about, can we get a more specific set of steps? For example if the user changes their language and can still see the items assigned to the PG that you don't want them to see, is that true after the user logs out and logs in? Also please be sure you haven't accidentally claimed the task. If the user in question has run the task it is now assigned to them and not the PG, so they will see it no matter what their group membership.
The behavior described by the first poster is a bug, but the question is - is it a bug where the wrong user is always in the PG, or is it a refresh timing issue where if that user logs out and logs back in they then see the proper results.
For the 2nd poster, are you asking how to write a utility service that will issue the refresh request?
AndrewPaier
2700040K2Q
‏2013-06-14T16:22:56Z
I suspect the problems being described here have to do with when group membership gets evaluated as well as user attributes. Most of these items get checked when the user logs in and do not get refreshed without a specific action such as a cache reset or full user synch. So for the use cases you are talking about, can we get a more specific set of steps? For example if the user changes their language and can still see the items assigned to the PG that you don't want them to see, is that true after the user logs out and logs in? Also please be sure you haven't accidentally claimed the task. If the user in question has run the task it is now assigned to them and not the PG, so they will see it no matter what their group membership.
The behavior described by the first poster is a bug, but the question is - is it a bug where the wrong user is always in the PG, or is it a refresh timing issue where if that user logs out and logs back in they then see the proper results.
For the 2nd poster, are you asking how to write a utility service that will issue the refresh request?
More...
Hi,
In the first post I was working on Tip and I suspect that is the reason for different behavior for those two participant groups. So I created a little test taking into account what the uvaman wrote.
I've created a process with one system step and two human steps in following oder:.
System step is just for initializing variable: tw.local.Title = "testTitle";
First human step is assigned to lane participiant and on that lane is participant group PG1 with using expression who have an attribute locale equal to "en".
Second human step is assigned to lane participiant and on that lane is participant group PG2 with user attribute Title equals to variable from process (expression is: tw.local.Title==null?"":tw.local.Title)
I have user with following attributes: Locale="en" and Title = "testTitle".
I also created human service exposed as administrative service so I could run following code (for refreshing participant groups):
var pgs = tw.system.org.getAllParticipantGroups();
for (var i=0; i<pgs.length; i++)
{
pgs[i].refresh();
}
And finally I created snapshot so I could refresh participant groups from Process admin console - Installed Apps - Role bindings.
And first test was (I never claimed the task): I started process and Human task appeared for that user in Process portal as expected. I changed users attribute Locale to something other then "en" from Process portal and then logout/login from Process portal. But task was still there. Then I refresh that participant group in Process admin - Installed Apps - Role bindings, and on process portal just click on Work tab and task disappeared. Then I tested my administrative service and got the same result. The test was the same as the previous but instead of refresh from Process admin - Installed Apps - Role bindings I started my administrative service. I also repeat these steps but with the difference that I changed the users attribute from Process admin console and result was the same. So my conclusion is that refresh of participant group is necessary after changing user attribute.
Question1: But shouldn't that be included in login or after some period of time?
The second test is based on uvaman's post and participant group with user attribute equals to some variable from process. So I finished first task (with other user) and came to second task. Then I take the same steps as in previous tests but with changing of users attribute Title to something else then "testTitle" (I checked varialbe tw.local.Title and it was "testTitle"). But the human task was still on Process portal and I could run it. And as uvaman already said, the only way I could get to that tasks disappears from my test user's inbox was to click on play button on that task in Process designer on Inspector view. Then I get list of users that could start that task and clicked Cancel button and return on Inbox - cliked on Work tab on Process portal and all those human tasks (there were 3 instances of that process and all of them were on second human task) disappeared. It obviously means that play button in Process designer performs some different refresh.
Question2: What is play button in PD refreshing, and how can we simulate that refresh? (My intention is to include that refresh code in service and run it every 15 minutes or something like that)
58XH_Hrvoje_Mance
27000458XH
‏2013-06-17T08:36:09Z
Hi,
In the first post I was working on Tip and I suspect that is the reason for different behavior for those two participant groups. So I created a little test taking into account what the uvaman wrote.
I've created a process with one system step and two human steps in following oder:.
System step is just for initializing variable: tw.local.Title = "testTitle";
First human step is assigned to lane participiant and on that lane is participant group PG1 with using expression who have an attribute locale equal to "en".
Second human step is assigned to lane participiant and on that lane is participant group PG2 with user attribute Title equals to variable from process (expression is: tw.local.Title==null?"":tw.local.Title)
I have user with following attributes: Locale="en" and Title = "testTitle".
I also created human service exposed as administrative service so I could run following code (for refreshing participant groups):
var pgs = tw.system.org.getAllParticipantGroups();
for (var i=0; i<pgs.length; i++)
{
pgs[i].refresh();
}
And finally I created snapshot so I could refresh participant groups from Process admin console - Installed Apps - Role bindings.
And first test was (I never claimed the task): I started process and Human task appeared for that user in Process portal as expected. I changed users attribute Locale to something other then "en" from Process portal and then logout/login from Process portal. But task was still there. Then I refresh that participant group in Process admin - Installed Apps - Role bindings, and on process portal just click on Work tab and task disappeared. Then I tested my administrative service and got the same result. The test was the same as the previous but instead of refresh from Process admin - Installed Apps - Role bindings I started my administrative service. I also repeat these steps but with the difference that I changed the users attribute from Process admin console and result was the same. So my conclusion is that refresh of participant group is necessary after changing user attribute.
Question1: But shouldn't that be included in login or after some period of time?
The second test is based on uvaman's post and participant group with user attribute equals to some variable from process. So I finished first task (with other user) and came to second task. Then I take the same steps as in previous tests but with changing of users attribute Title to something else then "testTitle" (I checked varialbe tw.local.Title and it was "testTitle"). But the human task was still on Process portal and I could run it. And as uvaman already said, the only way I could get to that tasks disappears from my test user's inbox was to click on play button on that task in Process designer on Inspector view. Then I get list of users that could start that task and clicked Cancel button and return on Inbox - cliked on Work tab on Process portal and all those human tasks (there were 3 instances of that process and all of them were on second human task) disappeared. It obviously means that play button in Process designer performs some different refresh.
Question2: What is play button in PD refreshing, and how can we simulate that refresh? (My intention is to include that refresh code in service and run it every 15 minutes or something like that)
More...
I don't know what code the PD is using, but I suspect it isn't a documented API and that depending on it would likely be a bad idea. The best thing here would be to submit a PMR to IBM as it is clear that the user group membership is not being refreshed properly on an attribute change.
(Awesome job explaining your testing, by the way)
Andrew Paier | Director | BP3 Global, Inc.
BP3 Global's Website | Twitter | Linkedin | Google+ | Blogsn

Related Links

Limit users to process portal
listToNativeArray() - What values are supposed to be returned in the array?
Out of Office Reassignment and Routing
Our PDW is corrupt ... I think
how to export excel file from coach table
ldap users and auto complete
Hide "Team Performance" and "Process Performance" tabs
Tables are not created using Update Tracking Definitions
Pop up is opening and immediately closing when clicking on pop-up button
DELETE option in Document List Control in IBM BPM 8.5
role binding
One Process, Many Countries, Thoughts On Data Segregation?
Manage the Visibility of Tasks in the Team Performance Dashboard
Error While Installing IBM BPM 8.5.5 Process Designer
RFE Shameless Plug - Coloured Notes
Testing framework for BPM project

Categories

DW
PowerVM
IBM Connections Cloud
Tivoli Business Servic...
Cognos
Rational
Globalization
Information Management
IBM Connections Meetin...
FileNet Business Proce...
IBM FileNet Records Ma...
IBM Content Manager
IBM Kenexa Assess on C...
IBM Kenexa Participate
IBM Kenexa HDAS Assess...
Application Security
Campaign
IBM SmartCloud Applica...
IBM SmartCloud Applica...
Open Beta Feedback
Software Asset Management
Server Automation
Cast Iron PIPs and TIPs
Cast Iron Documentation
IBM SPSS Modeler
IBM SPSS Statistics Sy...
General Statistical Qu...
IBM ILOG Elixir
Cognos 8
Rational Publishing En...
Functional and GUI Tes...
Service Virtualization
Test tivoli forum
Test for satish
Healthcare and Life Sc...
Fabrication and Assembly
HeapAnalyzer
IBM i
Open Source
XML
IBM DB2 Express-C Forum
Optim LUW
DB2 for i
IBM I BRMS
Part 3 - Challenge #08...
WebSphere Message Broker
WebSphere Application ...
Collecting Windows Eve...
Documentation
Troubleshooting
Performance / Scaling
Applications Q & A
System Architecture
Gentran Integration Su...
Industry
Mobile Store Channel
Gentran Windows upgrad...
Gentran Server for Win...
Connect:Express Windows
Miscellaneous
Your Selling System So...
Backend Systems
Courses & Courseware
Project Management and...
Living With Oracle
SDK Tools & Utilities
Performance & Optimiza...
Release 7.0
Release 6.7
E-Commerce/EDI/XML Cou...
Yard Management
Retail
Service Definition Fra...
WebSphere
Questions and Best Pra...
IBM Operational Decisi...
Business Rules Best Pr...
General Discussions
Diagram
IBM Decision Optimizat...
JRules - General
Форум по AIX и UNIX
Форумы Lotus
Форум IBM developerWor...
DB2 Content Management
IBM Academic Initiativ...
Tivoli Workload Automa...
IBM Cloud Application ...
IBM i Access for Linux
z/OS Communications Se...
Middleware and Web ser...
Linux scripting

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile