My advise is to have a Dispatcher bot put your transaction item, in this case, the email and put it in a queue.
Your Performer bot can sieve through the email and then process the attachment accordingly.
This is just one approach. Another way is to have the Dispatcher bot go through each email save it in a folder and put the location of the file in a queue.
May I know if there is any difference between following two approaches?
Using Dispatcher to put the email into orchestrator as a queue item and Performer get the queue item and process one by one in ReFramework. Finally, queueitem(MailMessage) as TransactionItem.
Without using Orchestrator, get email in GetTransactionData and save in a list and process one by one in ReFramework. Finally, MailMessage as TransactionItem.
Look like they are same. both approach treat the MailMessage as TransactionItem. Does this not utilize the Retry Feature by ReFramework?
For example, the email contains 10 excel files, each excel contains 100 rows and each rows contains “another 100 rows data table”. When robot process till 10th excel file, 100th row of this excel, and 99th row of “another 100 rows data table”. There is a system exception occurring, robot will Retry from first row of first excel file.
The Retry feature will work on the TransactionItem. So if you need to retry on the rows/Excel files, then we need to make the excel rows/files be the TransactionItem instead.
The Dispatchere process only create the queue items from data table or any other sources where as the Performer Process only processes that queue items. The following are advantages
The main advantages is: You can run multiple perfomer parallely