I am curious what is the best way to build recoverability into a workflow? Say the workflow errors because any reason, My goal would to not have the item go back through the entire approval process. but rather only go through the steps it has not gone through yet. What is the best way to do this.
Thanks in advance.
Solved! Go to Solution.
This is a way you could do it.
Supposing you have a Machine State and sevelar state, add a new state name "StarterState", also add a column to your list named "currentState" and update it on every state of your state machine.
Suppose your workflow errors on a state named "StateAppoverFinancial", so you 'll have that value on the column named "currentState"
With that situation you could restart a new workflow instante and when your state machine starts on the "StarterState" you can decide to change the state to "StateAppoverFinancial".
To illustrate the excellent Fernando's response,
1/ Add Status column to your list
My opinion is Status column is mandatory. More than allowing error recovery, it also allows to know immediatly in your list views the current step of workflow.
2/ Set Variable CurrentState, a lookup to the current item Status column
3/ Add state machine with first state as StarterState
4/ In StarterState, insert a Switch Case action to switch in the good state depending CurrentState
5/ On each branch, the first action is an "Update Item" to set the new Status
6/ Don't forget to end each branch with a Change State action to avoid dead looping