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?

1 Like

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

1 Like

We’re working to improve the documentation on 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)


Would you use the repeatable process for queues as well? @Mateus_Cruz

Yes, especially for queues!

If you would set the default in ReFramework to 0 for TransactionNumber you should not need to at the -1, I believe, correct?

I am a bit new to the Framework, but it seems that the TransactionNumber is just a steeringvariable, which only gets a purpose once a Queue is a datatable instead of a datarow.


If i just wanted to use the REFramework for example to download a report and save it in a pre-defined destination.

How would i configure the framework to complete this single task?

The task to complete is already set in my Process.xaml but i’m not sure how i get it to call the process from the GetTransaction.xaml

I’ve set the in_TransactionNumber = 1 but not sure what to add in the “Then” to ensure it checks for a transaction to process.

When i run it in it’s current state as above, i get the following “Process finished due to no more transaction data”


Best Templates for understanding and following REFramework. Thanks!

You can modify the REFramework template as per your usage and requirement.
Try removing the Get Transaction data from the Main. So, the workflow will redirect to Process Transaction directly from Init Application. If this sounds time taking, alternatively you can place download file activity for transaction number=1 and use save file activity in Process Transaction.

1 Like