Best Pratices for REFramework without queues

Hey guys,

I have some questions about the best practices for REF, without using queues.

  1. First, on whether should I start apps in the init section, for the first run. Or only really initiate them on InitAllApplications, letting Init clean and with an invoke of InitAllApp after the First Run sequence.

  2. Secondly, can I erase the SetTransactionStatus, as I’m not using queues in this case? And where should I set the status then?

Thanks in advance

  1. For most cases, letting the applications restart in the event of an error is advisable. You would only want to start the application once if you’re sure that there will never be a need to restart the application for the duration of the entire process.

  2. You could erase SetTransactionStatus, or you could redefine it to set some other object’s status, such as a datatable or Excel workbook. But if this isn’t needed, then it can be deleted.

1 Like

Thanks for the reply, it got clear now.

Regarding business rule exceptions, should we decide where they should be thrown? And just create a try catch with a throw new BRE?

Business rule exceptions are placed wherever a human would have to do something that diverges from the process definition. This isn’t to say that the exceptions are thrown for decision-making processes, but rather when further investigation would need to be done or where it is deemed better for a human to handle the failed transaction.

1 Like

Hello @ricardo_ventura94,

  1. The idea of having the Application Initialization inside InitAllApplications is to ensure the application is brought back up after an application error has occurred. As REFramework will try to logout of the application, if its unsuccessful it will kill the processes. Its best you keep it inside InitAllApplications

  2. When you are not using the queues, you can delete the GetTransactionData workflow. I don’t recommend deleting the SetTransactionStatus.

In case you are working on tabular data I recommend using the following modified ReFramework: https://connect.uipath.com/marketplace/components/reframework-for-tabular-data. Hope that helps, Kudos :slight_smile:

Regards,
Nithin

3 Likes

About the second one, I use the GetTrasanctionData with the TransactionNumber in order to get the next one… Is that wrong? I’ve seen befor it’s that way and makes sense to me as it works…

thanks for the link but now I have some additional doubts

  1. about the inputfile, shouldn’t we only use the Config file to place all settings?
  2. I’ve had a doubt about getting the credentials from a config file without using Orchestrator (in pratical exame they say we shouldn’t) but I don’t know how to do it without writing the actual password on the Config file. Or will they use another account of acme when testing my exam?

Thanks and best regards

Hello @ricardo_ventura94,

If you have logic inside the GetTrasanctionData it needs to be retained and your approach is right.

  1. In the Config file you will store only the configurations used during the execution of the process. The input file feeding the data should be considered as a seperate entity.
  2. You can store the password in windows credential manager.You can refer to this solution.

Hope that helps. Kudos :slight_smile:

Regards,
Nithin

2 Likes

I think I get it, but doens’t that mean the credential is only available in my machine? When they test it, they use their own account of acme right? Thanks for the help!!

Hello @ricardo_ventura94,

UiPath doesn’t really check the workflow by running it. Any assignment will have some interaction with ACME that will perfom updates to data on ACME. Ensure that for a given assignment the logic is implemented correctly & mainly the data you enter / update in ACME website is accurate, you will clear the tests.

Hope that helps. Kudos :slight_smile:

Regards,
Nithin

1 Like