Hey @sanjayjohnes, Welcome to UiPath community.
The key role for transaction number is to keep track of the item number which is currently processing and processed.
When you are using a Queue, It may just act as a variable with just number info logged for our reference. As all the transaction item tracking mechanism is handled by the queue itself.
But when we have a linear process or a repetitive process which use a data table or a spreadsheet as the source other than orchestrator queue, then the transaction number plays a major role to handle the flow.
Linear process - Should work only once, meaning the flow should execute and process transaction only for the first item which is checked by a condition transactionNumber = 1 else flow terminates.
Repetitive process with spreadsheet - Process gets data from the rows by means of row index. Here rows are the transaction items and transaction number is used as a row index. So as you said if there is a retry for failure, transactionNumber is not incremented in set transaction status and hence row index fetching the same row again from spreadsheet to process.
Hope this helps.
For more detailed information - REFramework Documentation-EN.pdf (1.1 MB)