I have a workflow that uses around a dozen call activities and would like to make it so when a new version of the workflow is released, that any running processes used the same version for all subsequent call activities as the version used for all call activities up to that point. (So if the workflow started on v1, it would run the v1 processes of all call activities).
We package and deploy all of our workflows as a single .bar file, so this would be ideal. Unfortunately, Activiti will always run the most current version of a process definition when it is hit at runtime, so if v2 is deployed any running process will use the v2 of any future call activities that have not been hit in the workflow.
Other than changing CallActivitiBehavior.java and possibly other activiti-engine classes I cannot think of too many viable workarounds other than changing the ID of every process definition used in a call activiti every time a release is done.
Does anybody have any ideas?
Note, we are using call activities as opposed to subprocesses for two reasons: 1) We are modelling with Activiti Designer in Eclipse and there is no ability to collapse a subprocess. Without this ability the workflow is way too large to manage on a single canvas. 2) We are a team of four developers and it is much easier to concurrently work on the diagrams when we can divide up the work. It would be nice if the subprocess of a bpmn file could be imported or otherwise referenced rather than inlined.
Any thought would be appreciated.
Thanks!