Resetting a process

Resetting a process


I've implemented a fairly long and complex workflow with a BPM Process.
However, at any given point in the flow, the "owner" of the process must be able to "reset" the entire process, effectively returning to the first human activity in the flow.
What is the best way to implement this? 

I tried with a conditional start. This will successfully fire when the owner resets it (so I have that part working), but I noticed that a secondary "path" is started, and that the old activity remains active. Should I try to do a query and manually close all the other activities? Or is there a better way to handle this?

Many thanks,


What do you mean by reseting? do you want to keep information about the flow already taken in each instance, or you can discard it?

Hi Tim,

The cleaner way to do something like that would be to launch a new process and terminate the current one.
On a conditional start, have a automatic activity that lauches a new process instance. Then put a End node with the Terminate Process option.

If keeping reusing the current process is a requirement ... I guess that setting all activities as Skippable and using a Decision after each one to check if the process should continue or not. But that would complicate your process flow a lot, making it mostly unreadable.

João Rosado
The simpler way is actually to follow João's 1st suggestion... launch a new process.

If you need to keep the same process, one option is also to use a conditional start to execute some logic that uses the BPT API to discard open activities (except the conditional starts and the activity where you do this logic), and follow up to the 1st activity
Something like this

Where the DiscardOpenActivities automatic activity has the following logic:

You can find the entities in the System reference and the DiscardActivity in the BPT_API extension
Hope it helps
Thank you for your excellent help guys.
My flow was looking exactly like Goncalo's first screenshot. The thing I was missing, was the second screenshot :-)
I'm not quite sure yet that keeping the existing process is a requirement. In either case, your suggestions will enable me to fix my problem.
Thanks again.