Move active state of a process instance to another state. Allow moving an active token in a process instance to another activity (backward or forward).
I am assuming I will be able to “continue” process from any activity in the process definition. Is this implemented?
This is available on the master branch, see for example the change state builder:
Yes, you can move the an execution to any other activity defined in the process definition. This will be released as part of the upcoming 6.3.0 release.
Would be really good to have a blog with a bit more details on the execution variables and what happens with the current execution when we restart from prior state, or the right way to set the execution vars when moving to particular activity, any caveats for moving to activity in parallel execution, etc.
Any idea on 6.3.0 release timeline - this quarter, next quarter, this year, …?
I did not see any additional blog posts or updates in the user guide on this functionality. I assume it is experimental (similar to process migration). It appears there is some common behavior - both features provide a way to move from one state to another within the target process definition. But it is not clear what is supported from a validation perspective. From what i can tell, the migration feature includes some explicit validation which focuses on the parameters and not so much on the process logic with no detailed validation for the state change feature.
We are currently supporting the state change feature and quickly realized that a user could potentially specify an invalid state (i.e. one that could not be attained by simply moving through the conditional sequence logic). It appears you are following the logic to generate the relevant execution ids, but the conditional logic from point A to point B is not enforced. For example, one can instantiate a basic sequential process and change state form the initial active task to one or more tasks downstream regardless of the sequential flow logic (i.e. tasks are mutually exclusive). In addition, we have a test that includes a service task with no incoming or outgoing sequence flows, but the state change can use it as a target element.