AnsweredAssumed Answered

Non-linear workflows.

Question asked by amackenz2048 on May 28, 2013
Latest reply on Jun 10, 2013 by jbarrez
We're designing an HR system that will require that all change requests to user data be approved through a multi-step approval process (5-7 on the high-end).  These requests would have slightly different stages for approval depending on the type and other data.

Our stages would be sequential (e.g. "stage 1" would need to approve before the people at "stage 2" would approve).  BUT the workflow wouldn't necessarily be linear in that we want users to be able to "reject" an approval back to any prior stage - and some users will be authorized to approve beyond a single stage.

I'm not sure how handle this gracefully within the Activiti workflows.  I've come up with the following but it's a bit unwieldy from a user perspective (e.g. it doesn't show the "linearity" that they feel is part of the process).  But short of a fully-connected graph which would be MUCH worse IMHO I'm not sure on how else we could implement these requirements.

https://www.dropbox.com/s/k9w4gcit07xnz82/ProcessA.png

Basically the "router" gateway would take as input which stage the user indicates the task should go and forward processing to that state.  We would need to provide logic giving the users only the stages they are allowed to choose from as well as validating this at runtime as well.

I'd love to get any feedback on best practices for this sort of flow. 

Outcomes