Multiple Roles assigned to one Swimlane - aqualogic.bpm.modeling(Archived)

We are currently using ALBPM 5.7, moving towards a possible upgrade to 6.0.
We are faced with a situation, where it would be very beneficial to assign more than one Role to a Swimlane, but this seems not to be possible?
We are then forced to model the same parts twice or more in the same Process just in different Swimlanes, which is tedious and maintenance cost grows.
Are there any good explanation, why this is not possible, or are you working on fixing this in any future releases?
On the other hand it would be nice if there is another easier workaround for this, than duplicating parts of the flow in different Swimlanes.

In 5.7 there is a feature called "multivalue role". In 6.0 it is called "parametric role".
Based on a string instance variable, this type of role allows different people access to instances in the same interactive activities in a role of a process. For example, you might have people who are auditors and people who are underwriters. If the instance variable that the parametric role is based on has been set to "auditors", then only the auditors assigned to that role will be able to see the instances in the interactive activities in that role.
Let me know if you need more information about this.

Thanks Dan, that will probably work for us.


Assign a copy of an instance to multiple participants in the same role

In this use case an instance is assigned to a participant in a role called Data Loader. When the participant realizes that the work is too much the assigned participant wants to get other participants in that role to help work on this instance at the same time, each participant will get to different parts of the request. When they are all done the work form all these different participants needs to come back to a common instance. How can this be done? 
Sure you've thought of these, but you might want to consider using:
1) a Split activity to divide up the work. Once all the work that was divided is completed, the instance moves on.
2) a Split-N activity to make a runtime decision on how many pieces to divide up the work into.
Hope this helps,

Parametric role question

We are looking to automate one of our processes using the Oracle BPM 10.3.1. We have 5000+ users (in 1000+ units) that create original requests which are later submitted for approval. In the Workspace application, we would like those users to have access only to the process instances that are created in their unit. Can parametric roles be considered a good solution for this problem?
The users are going to be logged in to our portal and validated by the SSO (we plan to integrate our LDAP user directory with BPM server). The unit names (ids) which can serve as a parameter for the role are stored in our Database and due to the size and frequency of changes of the list creating a static copy of it in BPM does not appear to be a good idea. What is the best way to populate the role's parameter value list dynamically? How to link the user to his unit name to enable parameter-based filtering?
Best regards,
A possible solution can be to have a project variable that holds the OU. Then you can create one view per OU in which you filter by this project variable.
I hope this helps. 
Thank you for your suggestion! We have many units (1000+) and creating a separate view for each of them could be a lot of work. That's why we thought that parametric roles were a good solution here. We may have to follow your suggestion if there won't be any other answer...
Hi Igor,
It's an interesting problem. Sure you've thought of all that I've got in this thread.
I'd agree that you could use the OU (organizational unit) values as the string in a parametric role.
Creating the parametric roles initially might be just a matter of going through the list of OUs and using the OUs as the parameters for the roles. One issue you might want to think about is how you're going to add new parameters as new OUs come into existance. You might want to run a Global Automatic daily to pick up new OUs.
The other issue you've probably been thinking about is how you're going to assign participants to the parametric roles. Initially, this would not be a huge issue since you'd know the OU from their settings in LDAP. I'm curious how you'd address the new participants and the participants that might change OUs. One idea might be to do the same thing and to run a daily Global Automatic to pick up new and changed participants for their parametric roles.
I'm not wild about only getting the OU / parametric role values / participant role assignments refreshed daily. Perhaps your business need might drive the length of time between refreshes.
Hope this helps,
Thank you much for your response! Being new to BPM I just wanted to check whether I am missing some important functionality or not. It seems that we are on a right track with this idea.
There are a couple of small things for which I'd appreciate some further clarification:
1) When I create all these param values for the parametric role (I assume the best way would be to do it programmatically), how persistent are they? Do they get stored in BPM data store forever or do we have to re-run our scrips when we, say, redeploy the project or move to a new server?
2) I don't yet understand how the integration between external LDAP directory and BPM is implemented. Do the participants just get copied into the BPM database? Or are they validated and assigned to roles via LDAP queries? I'm trying to understand what would be involved in the user directory maintenance process...
Thank you,
Hi Igor,
When you create the parametric roles (groups) and assign participants to them via logic they will persist in the Directory Service.
If it's a plain old vanilla Oracle BPM Enterprise installation and you're using LDAP, the role (group) and participant information is stored in and read from LDAP.

Multiple assignments

We are designing BPM flow for the project where standard role-based access control may not be sufficient. After researching parametric role it seems that they won't cover all our use cases either. Is there a way to send the activity to the inboxes of a certain group of people? The exact participants who should be notified are decided dynamically but there may be more than one person (they usually "belong" to a single role, but are only a subset of all users "in" that role).
Parametric roles looked like a correct answer but they require some predefined structure (stored in a DB or a directory). Maintaining such structure and keeping it in sync with our enterprise database and frequently changing rules seems like a big task.
Here's an example of what we need to accomplish:
A "Provider" user starts a BPM process instance and specifies a provider number in an entry form. That provider number is stored in an instance var. Based on a location of a provider (and sometimes other variables within BPM process instance and outside of it) the system should notify a group of people (region administrators) about this new item. Because the calculation is not simple, we can't just create a parametric role structure where each region coordinator would have provider numbers assigned as parameters.
The ideal solution to this problem would be an ability to call setNextParticipant() with a list of people to notify. Is there anything that can effectively substitute that? (Oracle BPM 10.3.1).
Thank you in advance,
Edited by: igorbunov on Sep 30, 2009 12:47 PM 
So you are saying that if a role contains 10 participants.. But you want to assign the task and send notifications only to 5 specific participants inside that role based on certain conditions and not to 1 participant or all 10 participants inside that role?
Am I correct ? 
Hi Igor,
I agree with you about the parametric roles. What you're doing could be done using parametric roles, but here's another approach.
If you had a role with all the participants assigned to it you could:
1. Create a Multiple activity that creates a copy of the work item instance and assigns it using next.participant to the each of the correct participants.
2. Once it leaves the Multiple, the copies of the work item instance would go to an Interactive activity in the "Everyone" role. Only those participants assigned to a copy inside the Multiple activity would now see the instance.
3. The Multiple's Join activity might have logic like this:
this = copy
action = RELEASEThis logic would set the variable(s) changed by the participant. The "action = RELEASE" logic does two things. It only allows one participant to take action on their copy and causes the copies in the other participant's inboxes to be deleted.
Hope this helps,
Thank you for your quick answer, looks like this is exactly the thing that we need!
user8752903: that's correct. I will try out Dan's suggestion now, I think it'll work.
Is multiple activity same as Split N? 
Yes - this and a few other activities were renamed - most were renamed for BPMN compliance.
In Oracle BPM 10g the activity names that were changed are:
<li> Message Wait (previously Notification Wait)
<li> Multiple (previously Split-N)
<li> Subflow (previously Subprocess)
<li> Send Message (previously Notify Process)
<li> Global Interactive (previously Global)
These activities were added:
<li> Or Split
<li> Decision (also in ALBPM 6.0)
<li> Timer
Hope this helps,

create additional users in BPM worklist 11g

We want to create additional users (apart from regular user weblogic) in BPM worklist. so that they can login and review the assigned tasks
what is the process and where do we create user/password for these new users ?
try to find
organization ---> participant 
Login to the Weblogic Server console. Go to Security Realms > myrealm and click on Users & Groups tab.
Click on New to create a new user of type "AuthenticatedUser"
I have created participants from weblogic console, but now I want to assign roles to those participants, how and where can I do that???
Role assignment is done from within the workspace application itself - http://<server>:<port>/bpm/workspace/ .
You need to login as an Admin type user to manage these settings (weblogic user should do). There should be an Administration link in the upper right after you login. 
Thanks Mark! It works fine!
I have another question... When I deploy a project just for one organizational unit, what will happen with the users? I mean, the instances are redirected acording the Organizational Unit?
For example:
I have 2 OU (Organizational Unit), A and B, and Participant1 is for OU A, and Participant2 is for OU B, both participants has the same rol, so, I deploy the project, what will happen for an instance created by a participant in OU A, will be redirected just for Participant1, or Participant2 also are going to see that instance?
This question is because I need to deploy an application in a partial way, and I wanna know if we have to use parametric roles (and that is another question) or if we can solve it with OUs?
If we have to use parametric roles... how can we do that in 11g???
Thanks for your help!!
I'm not entirely sure about the OU thing, I have yet to test this out in 11g. I believe it's covered in the documentation though, take a look at the process modeling and implementation guide.
To my knowledge parametric roles aren't implemented yet in 11g (it seems they were close, but didn't squeeze it in). You can sort of get around this by using dynamic role or group assignments within the human task routing slip, although you then need to create numerous groups or roles that all correspond to some higher level single collection. 
It sounds a little bit weird, and not so simple... I will try to do it...
Thanks a lot for you help! =)
Were you able to solve it?

Deputies in BPM11g

We are required to use an enterprise wide third party authorization system, which provides user entiltement via an LDAP tree.
Deputy assignmnent is done per role, e.g. authorize jstein for role FinanceSupervisor and in addition I authorize fkafka as deputy for jstein in before mentioned role.
In 10g we implemented this using parametrized roles.
I am looking into how we can implement this in 11g but I cannot find any information on this subject.
Anything which sheds some light on this is very appreciated.
Hi Peter,
I'd be the first to admit I don't quite have a full grasp of the benefits of the new parametric role feature that came back in with the feature pack and how this can be used for LDAP groups - just don't see it.
As an alternative, I've been using the business rule feature for human tasks to assign people to tasks based on one or more parameters passed into the human task. If you wanted to have a deputy for Finance assigned, you'd pass into the human task the elements "Deputy" and "Finance". The business rule in the human task would then assign the work item instance to the correct LDAP group (e.g. "FinanceSupervisor").
I wrote this blog ( a few months ago that gives you a step-by-step on how to do this.
Hope this helps,