cancel
Showing results for 
Search instead for 
Did you mean: 

Reduce a process by usergroups

fellowtom
Champ in-the-making
Champ in-the-making
Hello Activiti Developers,

since this is my first request at all, i hope it fits the correct forum. I'm pretty new with BPM in general and Activiti. But your engine seems very powerful and I'm interested in working with Activiti for my studies. The last days i started working with this engine and feel just like scratching the surface. Setting up some simple processes is possible for me (simple tasks + gateways). But I have two major questions, wich i couldnt answer during researches, maybe due to a lack of missunderstanding the topic or limits of BPM.

1. If a user has to fill in a formular at the beginning of a process, where at this time only 2 inputs are necessary(2 of 5 or so), how to let him fill out the rest of the formular at a later time. Or with other words, if he makes a mistake in Spelling or something like that. Can this be undone? I thought if a process is done, its done or? So the user wont come back to this formular when he wants, like in a programm with a button. Can this only be resolved by changing the values in the database itself.

2. When I have a 'longer' process, as example task A - task F, can the process be fitted/changed to special usergroups. If usergroup1 is logging in, then the process consists of task A - task F, but if a group2 logs in, then they should handle task A - B and E-F. So tasks C and D dont belong to them. The Process directly leads from B to E. I think programmatically this can be resolved with an XOR easily, but how to change the view of the process Diagramm. Because usergroup2 should not be allowed to see, that a Task C and D exist. To cut the chase: An "Overprocess" needs to be adapted in some tasks.

I hope i could explain what i want. If not, I'm sorry.

With kind regards,

FellowTom
3 REPLIES 3

jbarrez
Star Contributor
Star Contributor
1. This is pretty much 'unlike' bpm, as you don't want to go back in time to change something.
If you want to leave the option open for a user to change the data further on, you need to put this data on the user tasks that come later on. So if your process asks for 'A' at the beginning, that same 'A' needs to be part of the further forms if you want it to be editable.
Of course, you can easily put your own custom UI above this and allow to change these any time, calling the variable update methods yourself.

2. You need to explicitly model this behavior in your process, wit indeed a gateway to goes to the correct task.
Simply set the correct candidateGroup on each user task.
However, it's going to get tricky: what if group 2 is at E and someone from group 1 logs in? Or do I misunderstand your problem?

fellowtom
Champ in-the-making
Champ in-the-making
Thank you for answering so quickly.

To No.1: This were exactly my worries, that this wont be the aim of BPM. But ok, so will implement the methods in the UI.

To No.2: I think I missunderstood my own problem a little bit. Well I'm not sure if I want 2 usergroups for the process or 2 different processes wich are in general like 80% the same used by 2 different "Users". So the Users can at the same time be at the same Task, but it's not the same process (instance). So I think I wanted just to create the wohle process once, but then use it severeal times in little different versions. So its the best to copy a process and delete the not wanted tasks?

The Szenario I would like to handle is, that several customers login and see the "same" process as they think. Just customer A has to do a few tasks more, which B doesnt notice. Thats what I would like to achieve.

jbarrez
Star Contributor
Star Contributor
Well, if it is only about visibility of tasks, you should be able to get there with the default assignment options of BPMN.

Regarding different versions of a process definition: you can always programmatically tweak your process, using a Java API and manipulate the BpmnModel.