Best practice long running processes

Hi all,

are there any best practises to use the UiPath.Persistence.Activities like “Create Form Task” and “Wait for Form Task to Resume” for an process developed in the Robotic Enterprise Framework?

What process i’m thinking about:

  • Dispatcher: Grabing Data from an application or email, validation of the data, if data is complete add to queue, if not complete create a form task
  • Performer: Grabing queue items and work one by one

Kind regards

Were you able to figure this out and use Persistence activities for bringing-in human interaction ?
Here are few best practices on using this activity pack (specifically wait and resume* activities ) Orchestration Process


Hi @Liji,

thanks for your answer. No, not really. I can use the Persistence acitivities in an orchestration process, but that doesn’t help me out. As i wrote i would like to use the Robotic Enterprise Framework for Dispatcher and Performer with a queue in between.

I could do it without the framework, but then i will miss the nice features of it like retrying, Exceptionhandling etc.

Any suggestions?

In the latest studio version, you could go to project settings > Support persistence can be enabled for a non-orchestration process as well. But there are some best practices to take care while using persistence activities like 'Wait & Resume* ', particularly about usage of such persistence points only in main.xaml, data serialization pre-requisite of workflow variables in the same scope of such persistence points. Alternative will be to move non-serializable content out of the same scope of wait and resume activities, through invoke workflow or in a different sequence itself.


Thanks @Liji will try that if i can manage to implement the persistance activities into the statemachine of the framework.

maybe you can help me with some other point too. How can i integrate a dynamic data table into a form via the persistance activities? The columns of the data table are fixed, three in total, but there can be a dynamic amount of rows. one column of the data table needs to be editable. the other two must be not editable.

Does that mean Persistence activities cannot be used with in REframework in 2019.10 Studio version

Hi @AnaC,

for me the setting mentioned by @Liji is there at studio version 2019.10.4:

But didn’t test it till now.

Hey, had you been successful at this? Does it mean you can’t put the “create document validation action” workflow in a seperate xaml? We need to put it outside?

By default, Forms designer generates 10 columns in data grid from a data table. But if the RPA developer requires to display more than 10 columns, the following steps can be followed

Drag-drop the child components inside data grid component.

The components inside a data grid can be either:

  1. Auto-generated according to the column’s and their data types OR
  2. RPA developers can drag-and-drop components inside data-grid according to their choice (like a dropdown/email/phone number field instead of a text field). They’ll have to match the field key of such components to be the column names of the DataTable. And in this case, auto-schema generation would not be invoked. So whatever one dragged-and-dropped is what gets rendered in the form.

For example, if we have 12 columns (Col1 to Col12), the text fields could be added inside datagrid component. The keys for each added component should have the field key as the name of the column name of the DataTable.

1 Like

Technically the restriction is for all “wait and resume*” activities that are persistence points in a workflow to be present in the main.xaml . We envision orchestration process as the one that stiches RPA workflows/human actions together. However, if you have scenarios that could be managed by ‘create action’ in secondary xaml but “wait for action” resides in main.xaml should technically work.

got it. Thank you :slight_smile:

Hi @Liji, @Lahiru.Fernando, @Palaniyappan

Can we use Human in the loop form tasks in an REFramework where we pick transactions from queue and process them? We want the automation to continue with the transactions in the queue and as and when the user provide the feedback for any of the transactions sitting in HITL, it should process them accordingly.

Hi @ValathappanSivaraman,

yes it is possible. I added a new state after the Process Transaction state. But from my experience i would rather go with another architecture. Use a Orchestration process to handle all of your Human In The Loop stuff.

Thanks @schwarzp for your response. Yes… we are adding another stage to handle the user interaction(Human in the loop) but what happen to the new transactions to be processed because bot is in the wait mode in this stage until user responds.

by standard it will stay on “In Progress” state, but that one will abandon as usual by time. Thats why i would rather go with orchestration process and parallel for each.

Hi @schwarzp , @Liji
I have a process where i receive emails with attachment which i need to process and validate using different applications.
I have used Reframework with mailmessage as Transaction item

In the process state for validating extracted data from attachment i need to use action centre.
Could you please let me know how do i proceed with it