I am using Re Framework to implement my process. I am not using Orchestrator queue.
Hence in my case Transaction Items are Data Row instead of Queue Item.
Now below is the scenario I want to design:
In Process workflow , if there is any exception that occurs I want to retry the same transaction for just 1 time (i.e flow will go to initialization , pick the same DataRow and process).
If this attempt fails , I want to write the failure reason along with the transaction item to a text kind of log file and the workflow should pick the next transactionitem( i.e go to getTransactionData and pick the next transanction item from the DataRow to Process).
Is this possible to do?
Also I observed in current scenario, I have updated the MaxRetryNumber in Config file to 1. Still the workflow on exception/failure in the process workflow infinitely goes to the Initalization phase.
just to make sure: have you updated the Get Transaction Data Function so that it picks up the data row and stops when it’s done with the DataTable.rows.count? (I normally reuse TransactionNumber as the number of the Row in the DataTable, although you have to change the default from 1 to 0).<— this should help with the first point.
for the second point you can do several things. You can modify SetTransactionStatus. Create a function/workflow that writes into your log. Added at the end of the flowchart side of Business Exception and for System Exception you can either add it inside of the function RetryCurrentTransaction (Check the branch of the workflow when surpased the max retry) or add it at the end of the branch for System error (inside SetTransactionStatus) but only when RetryNumber=0 (meaning that you have surpased the max number of retries).
Log story short: it can be done, of course. You just need to check where to put your functions
Yes the first part in Get Transaction is handled to pick up the data row upto the count of DataTable is reached.
The approaches you mentioned for the second point, they are going to be helpful. As I had not thought of implementing it such a way. Thank you it will be definitely be good thing to try out the way you mentioned.