Reframework's Set transaction number



Hi I am trying to understand the below:

Blockquote Description: Get data from spreadsheets, databases, email, web API or UiPath server queues. If no new data, set out_TransactionItem to Nothing.
For a linear process (not repetitive), set out_TransactionItem only for in_TransactionNumber 1 - first and only transaction.
If the process is repeatable, set io_TransactionData once for in_TransactionNumber 1, then assign a new out_TransactionItem by using the in_TransactionNumber to index io_TransactionData. Be aware that, at the end of the io_TransactionData collection, it is your responsibility to set out_TransactionItem to Nothing, thus ending the process.

Can anyone explain the part where process is repeatable?


I have the some question.
I do not believe anyone can help.


We’re working to improve the documentation in this point, but that paragraph basically says that you can have two cases: linear process and repeatable process.

In a linear process, the robot has only one transaction.
For example, suppose you want to get the name of the user and write it in Notepad. Since you want to do it only once, you check whether in_TransactionNumber is 1. If it is, then you ask the user’s name using an Input Dialog activity and stores the name in out_TransactionItem. If it’s not 1 (meaning the first and only transaction was already processed), then you set out_TransactionItem to Nothing. This means that there’s no data left to be processed and the framework will conclude its execution).
Sample project: (526.2 KB)

On the other hand, in a repeatable process, the robot can have many transactions.
For example, suppose you want to read data from some people from a CSV file and write it in Notepad. In this case, you can set the out_TransactionItem argument (in the GetTransactionData.xaml file) to something like io_TransactionData.Rows(in_TransactionNumber-1).
This means that you’ll get one row from the DataTable and that’ll be your transaction item.
One big advantage in this case is that you get a way to process each row independently and, if Notepad crashes during the process, the framework will automatically reopen it and continue the processing from where it stopped.
Sample project: (780.0 KB)