We use the concept you are looking for in our REFramework performer. We achieve this by creating a state machine in the Process.xaml file and have used in production robots with great results.
This is possible with “Set Transaction Progress” activity, it will create a new key and value for each item in your queue when the item is processed by the performer.
@loginerror - Use case requested here is :
If a robot has finished 2 out of 3 steps in the Process but failed at the 3rd step, then we can update that particular item as for example, “Finished upto step 2”. Later when the item is retried, it will skip Step 1 and Step 2 as they were already performed in the previous run.
How to achieve this?
At transition from Stage 1 to Stage 2:
Here we do not provide any condition as it does take some time for the queue item to update the transaction progress. Simply, put robot on execution will poll orchestrator quite rapidly and if the transaction progress has not updated. You do not need to worry if you keep it empty.
At transition from Initialize to Stage 1 we know that the transaction progress will be a null string
"" so we use that to check where *(which Stage/State) the intialize stage should transit to
At Transition from Initialize to either Stage 2 … Stage n
Finally the last stage transition to end the state machine
Here is a sample Process.xaml which you can use in the REFramewokr:
Process.xaml (22.3 KB)
You can deck it out as you like depending on your process.
Hope this helps you and others looking for a solution!