Hello,
I would like to create this post in order to collect ideas from peoples who use BPM (hoping I can use this forum for that).
First let me present the context
1- A first actor starts a new request (super form) that consists in :
some shared informations
0 to n forms
This is the corresponding UML diagram https://community.jboss.org/servlet/JiveServlet/downloadImage/2-796297-20271/310-181/uml_forms.png
2- First actor validate his step. A new jbpm process instance is created and goes to first process step then wait for a second actor.
3- A second actor log in, take the task and open the super form. he completes his part in each form. Finally he validates and send to next part the super form. The process task is completed and process goes to next waiting step.
Point 3 is repeated until we need to split the super form.
4- The last actor who fills his part of information in each form validates. But then the process is splited in one process per form and each process goes to waiting step for human action.
5- Each processes continue and terminate independently . When an actor of these subflow log in and take his tasks he see only one form. It is very important that each form can be ended without waiting for other forms.
So, I found two solutions concerning the process modeling and implemented the second one
1rst solution : at first validation one process is created per form and manage all steps from start to end of the flow.
With this solution we have to create a custom jbpm task management because in task list only one task has to be shown but when this task is taken all tasks related have to be claimed and started. Same "problem" after validation, we must retireve all concerning task and complete them.
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-796297-20274/450-596/oneProcessPerFormAtStart.png
2nd solution : All comon steps are managed in one process. At split step, this process ended. Then a new process instance is created for each form and manage all individual steps until the end.
This is the solution I implemented with jbpm 3.
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-796297-20275/310-516/superProcessAtStart.png
I am about to migrate this flow with jbpm5 and I will be very interest in a feedback of people using jbpm. You can have better ideas, and constructive criticism is welcome.