Dynamic user assignment with dynamic subprocess creation

Hi All Bonita Users,

I am new to bonitasoft and may be I am having basic queries. I am working on 6.2 version.

Use Case
    1. We have a Manager who is having list of all the Servers that needs to restored.
    2. He is having list of all the technician who are going to perform this task.
    3. There are 4 steps in which this restoration happens, say A,B,C,D.
    4. Now let suppose manager has List of 3 server which he wants to restore.
    5. He comes into the system and assigns all the 3 Servers to the 3 technicians.
    6. Now each technician has to perform same set of task. And manager wants to keep track of each task.
    7. And in between on any task if any issue occurs then he has to raise incident.
    8. And once the incident is resolved he has to go back to the same task and mark it complete and continue to the next step.
    
For this.
    1. I have created call activity and linked it to sub process created for task A,B,C,D.
    2. I have also created sub process for incident management which i calling if there is any issue on the task.
    
Questions
    1. I have created multinstance call activity with "Use Cardinality" option and set it to the number of users manager has selected (say 3 technician).
    Then each technician will see 3 instance of task A. Now how can we configure the task so that he knows the first task is for server1, second for server2 and so on ?
    My second question is, how we can maintain this for task B,C and D ?
    My third Question is, If servers has some build order than how we can order the task on technician view ?
    Is "Use Cardinality" is the correct option I have choosen
    Please help me out i am not able to figure out how handle this.
    
Thanks in advance
Akhilesh    
    
    
    
    

Hi Akhilesh,

Indeed, you should use a collection instead of a cardinality for the multi-instance configuration.

Add a pool java.util.List variable “servers” with default value [“serverA”,“serverB”,“serverC”].
Configure this “servers” variable as the input collection of the multiinstance
Add a task variable “server” on multi-instance task: it will bring a different value for each instance of the multi-instance.
Configure this “server” variable as the “input data” of the multi-instance
If you were to use output data, you would have a task level variable (i.e. “result”) to store this output for each instance of the multi-instance, and a pool level variable (i.e. “results”) to store the collection / List of outputs for further usage.

Now, lets consider your sub-process / child process. Create a pool level string variable called “sub_server”. Go to the call activity and configure it to refer to this child process. In the mapping section, map the parent task level variable “server” to the child process pool level “sub_server”. This way, for each instance of the multi-instance, a child process will be started with a different “server” value.

On the first task (or on the lane) of this child process, configure the actor.

If point 6 of your user case means “the user who made task A on server A should be the one who will make the other tasks (B, C, D) on server A”, then you ought to use a custom filter on each of those tasks which will search and return the user id of the one who did task A.

Lastly, I believe point 7 & 8 are related to your process design…

Hope this is clear enough :wink:

Cheers,
Renaud

Hi Renaud,

First once again thanks for you response.

I have followed steps mentioned by you and I was able to create different instance for ServerA, ServerB, ServerC.
After that I tried to configure actor mapping but I was not able to get logged-in user id neither on lane nor on task, so that I can filter whom this task is assigned to.

  1. It will be great if you can please let me know how I can configure actor on Lane or task level ?
  2. This is in regards to point 7 & 8 . On any task when we click on submit button than that task is completed, so is their a way that we can move from one task to another without completing the task on which we have clicked submit button ?

Thanks in advance
Akhilesh

Thanks a lot Renaud for your valuable comments. I will try this out.