We have a requirement to allow existing instances of processes to be "upgraded" when a process definition is re-published. I have been thinking about the methods of doing this...
The first thought was to break a process up into many smaller processes, and then have an "angel" or "parent" process that chains the smaller processes together - then within each smaller process, have a data field recording where the process is, and line rules leading to an IPC call to kick off the same process again, and finish the current one. I gather this is probably how most people do updates to processes, but it quickly turns process definitions into spaghetti.
I had another idea...
What if (at the start of a process), two lines are taken - the normal route into the workflow, and a second route into an activity that has a preceding rule - which only happens if a "reset" condition is met... normally that second route will sit dormant, but if it does fire, the following should happen...
1. Kick off a new process instance with an IPC event
2. Remove the current process instance
Does anybody have any thoughts on how "do-able" this is?