I’ve been using queues quite a bit more, but am not sure how to structure the workflow so that processing will continue with the next transaction item if the an unexpected error occurs during the current transaction.
For example, in Queue1 the robot is working on transaction1. Midway through transaction1, an unexpected error comes up. I have an overall try-catch setup for the entire workflow so that if this happens, the robot will log the error, close out of programs, and set the transaction status to an application error.
However, if I leave it as is, the robot will stop. How can I instruct the robot to continue with the process by grabbing transaction2?
Right now the best idea I have is to have a parent workflow with an overall try-catch as follows. It’s a bit of a pain re-working workflows to follow this pattern though as the arguments/variables will sometimes get screwed up when attempting to right click & extract as workflow on the original processing workflow.
Try
invoke processing workflow
Catch
If Transaction is Not Nothing
Set Transaction Status = application failure
Invoke processing workflow
End if
I share this with my limited knowledge in your requirement. Probably you can have a structure like this,
Get transaction Item
Check transItem Is not nothing (FlowDecision)
Yes - Invoke processing workflow
Try
Perform set of operations
Catch
Exception if any
[Connect this sequence back to the above conditional check]
No - Stop the process peacefully with your own steps
Small change from your implementation - No need of invoking the process workflow again in catch.
Maintain one Try-Catch and perform operations whatever you wanna do in TRY Block and catch it in CATCH if there is an exception.
Keep the conditional check of get transaction item outside the invoke processing workflow, might be in Main.xaml