cancel
Showing results for 
Search instead for 
Did you mean: 

Modeling the available user actions in the bpmn

chala_chitturi
Champ in-the-making
Champ in-the-making
I am trying to build an activiti workflow for a business process where the available user tasks changes based on the user task performed in the previous step or state based user actions.

I am referring to the attachment for better understanding (Please see the attachment).

State 1
——
For example if the user can perform "Log Customer Contact" or "Request Quote" or "Resolve As Loss" user tasks initially. When asked for the list of tasks on the process instance, user will get
1. Log Customer Contact
2. Request Quote
3. Resolve As Loss

State-3
——-
Now lets say if the user performs "Request Quote", he should move forward in the workflow where his new set of available user tasks are
1. Complete Quote
2. PO Received

State-2
——-
Now lets say if the user perform "Log Customer Contact" instead of performing "Request Quote" as specified in the earlier step, he should move forward in the workflow where his new set of user tasks are
1. Request Quote
2. Customer Commitment

Now the problem is, to make this happen, I have to cancel the other two tasks that are in State-1 so that the process will move forward.
I don't want to complete those tasks automatically as it gives a wrong history.

How do I do that?
(Sorry I could not attach the workflow)
3 REPLIES 3

jbarrez
Star Contributor
Star Contributor
Did you try using a boundary event + signal event?

chala_chitturi
Champ in-the-making
Champ in-the-making
Thanks for the response. Yes, I did looked into it. It looks like a good workaround. I see that the cancelled tasks are showing as completed. Is there a way to avoid cancelled jobs showing in the history? Please see the attached bpmn that I created to solve this problem using signal event + boundary event.

jbarrez
Star Contributor
Star Contributor
Hmm indeed, if a signal is caught on the boundary, the inner tasks will be completed.

One option is to inject a custom HistoryManager for that purpose, that overrides the default behavior.