As part of the Implementation Best Practice webinar series, a webinar was held on REFramework, which is one of the primary UiPath implementation backbone architecture.
This webinar was for partner’s across India. The recording of the webinar is provided below and also the responses to the question’s that were asked during the webinar.
RE Framework: UiPath Webinars - rpa-implementation-best-practices-02
-
Do we have something which we can use as environmental locking type of thing?
Response: Yes. This functionality is automatically done in case Orchestrator queue is used. Ideally, if you want to have multi bot architecture then you must create 2 diff projects in UiPath - dispatcher and consumer. Dispatcher would add all the input items to the queue which would be run by one machine (Robot) and Consumer (Machine Robot) would be many that processes these inputs. Orchestrator Queue has inbuilt functionality to be able to provide input one by one to each consumer Robot based on its availability.
Reference Link: About Queues and Transactions -
Any possibility to integrate python script ?
Response: Yes. Using Python Activities Package in UiPath. Please check the link for more info.
Reference Link: https://docs.uipath.com/activities/docs/about-the-python-activities-pack -
Any approval process can place in between the process ?
Response: Yes. You would need to create attended bot in that case. There are monitor Events activities that can be used to resume a process after it is approved by clicking on a button, keypress etc.Please follow the link for more information. In future release we will have a new feature of long running process which might need approvals in between.
Reference Link: https://docs.uipath.com/activities/docs/user-events-ui-automation -
Can we see some example using these frameworks?
Response: Yes. Attaching a possible solution for “Calculate Client Security hash” project which is part of Level 3 advance developer training in UiPath Online Academy. -
Can I convert my current BOT programming in to RE framework, if yes, please explain?
Response: Yes you can. You would first need to divide your process into diff parts by thinking what needs to be done as part of “Init” , “Get Transaction Data” etc states and then just copy and paste your code from current project to REFramework project.
Reference Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com -
I want to enter values from two columns (separated by comma ) into a column, which is to be inserted into db. how to do it?
Response: If the values are in a string variable which is separated by comma then you can use string methods like split,sub-string etc to get both the column value one by one by running a loop on the split data and then create a new datatable and ass these values in the Datatable one by one by running a loop. Once the datatable with the final one column data is ready use Database activity package in order to insert values in DB. For Database Activity package please check in the link.
Reference link: https://docs.uipath.com/activities/docs/about-the-database-activities-pack -
For what type of automation we must move to Enhanced Re framework?
Response: You can use any of the framework for a project. There is absolutely no restrictions on that. However in case you have very complex project which has a lot of subprocesses in it then you must go for Enhanced REframework as it has “Get Data” and “First Run” Projects (inturn is a small REframework) which would help you to organize your project structure better.
Reference Link: https://go.uipath.com/component/enhanced-reframework-57011 -
RunAllTest.xaml - Is that being used for unit testing?
Response: Yes. You can also use it to test multiple workflows together which might not come in a sequence as per the process requirement. Please follow link for more info.
Reference Link: Using Test_Framework and Test mode parameter's examples? -
I have multiple excel files, i want to loop through each files get rows and process the transactions. where should i loop the files? is it in get transaction? and where should i obtain the datatable that is fetched after reading?
Response: Read the excel files in Init under “First Run sequence” and then make sure you have all the data from diff excel in diff datatable variables. In get transaction data state, delete “Get queue item” activity and add an assign activity. Create an output argument as Datarow and assign one row from the datatable to the output argument. In case you need rows from each excel then create those many output arguments. -
In which situation, we have to use enhanced REFramework?
Response: You can use any of the framework for a project. There is absolutely no restrictions on that. However in case you have very complex project which has a lot of subprocesses in it then you must go for Enhanced Reframework as it has “Get Data” and “First Run” Projects (inturn is a small REframework) which would help you to organize your project structure better. -
Can we handle Multiple BOT architecture using this framework?
Response: Yes. In that case you would need to create 2 different projects- Dispatcher and Performer. Dispatcher would run on one single machine and would keep on adding items to the queue. Performer process can be run multiple robot machines and would take input one by one from the Queue.
Related link: About Queues -
When to use Classic RE Framework and when to use Enhanced RE Framework?
Response: Both the frameworks can be used in any project as it is only different in Design perspective and the functionality or the flow is still the same. Enhanced REFramework provides you better exception handling , Logging and a better structure by providing diff layers. In case you have very complex project which has a lot of subprocesses in it then you must go for Enhanced REFramework as it has “Get Data” and “First Run” Projects (inturn is a small REFramework) which would help you to organize your project structure better.
Reference Link:
To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com
https://go.uipath.com/component/enhanced-reframework-57011 -
Is there a way to move assets to different environment along with the package instead of creating them manually again?
Response: Yes. There is a package available on GO. Please follow the link
Related Link: https://go.uipath.com/component/uipathteam-orchestrator-release-activities -
Avoiding the Orchestrator queue. Can we use the excel file to store the items?
Response: Yes you can.You would need to delete some of the activities in order to get the input from excel instead of Orchestrator Queue. In Get transaction Data state , you should delete get transaction activity and add an assign activity to get one row from a datatable (read from Excel). There is transactionData variable of type Datatable that you can utlilize. -
By using the retry number specifying it in the excel. Does it get overriden if using orchestrator queues.
Response: If using Orchestrator queue then the Maxretry number in Config.xlsx should be 0. When a transaction fails because of system error then if the orchestrator queues is enabled with retry then the current transaction item would be marked as “Retried” and the same item would be added to the queue again with the status new. Hence it would be picked up by robot later based on how many transactions are still in the queue. For more info in Queue retry please follow link
Related Link: Queue Item Statuses -
Is there any way to publish package on local machine instead of orchestrator during UiPath connected mode from orchestrator.
Response: No. If your machine is connected to an Orchestrator via Robot tray then it would be published to Orchestrator when you click on Publish. In case you don’t want to publish it to the orchestrator then you must disconnect your Robot from orchestrator via robot tray.
Related Link: https://docs.uipath.com/orchestrator/docs/publishing-a-project-from-studio-to-orchestrator -
What is the difference between throw rethrow activity ?
Response: Using Throw you can throw a custom exception like business rule exception and provide a meaning message for the exception. Rethrow helps to throw the exception which is raised back to the parent who has called that workflow. Please see the link for more information on try catch, throw and rethrow. This concept is exactly same as any other programming language.
Related Link: https://docs.uipath.com/activities/docs/try-catch -
Are test.xamls more like sanity checks for the process?
Response: Yes. It helps you to test mutiple xamls together even though they might not be called in that sequence in the actual process. This would help you to do unit testing. For more information please follow the link.
Related Link: Using Test_Framework and Test mode parameter's examples? -
Can we execute two jobs(process) at the same time using a single machine?
Response: Not at this moment. This is planned for future product release which might come in next couple of months. However this would be posssible only in case of attended bot and not unattended bot. -
With Enhanced RE-Framework can a Bot be treated as web-service?
Response: Not sure if the questions is clear. However Bot is a machine/laptop where you run a process that you build in UiPath Studio. Robot is an agent (windows service) which keeps on running in the background and helps to run the process which is requested by the orchestrator/Robot Tray. hence Robot cannot be treated as a webservice and there is no direct connection with Reframework. Reframework is template which helps you to build you process faster as most of the best practices and other guidelines are already build, all you need to do it just automate your process and handle Business Rule exceptions. For more info on robots please follow the link
Related Link: Robots -
Main different b/w Classic Re- Framework and Enhanced REFramework.
Response: Both the frameworks can be used in any project as it is only different in Design perspective and the functionality or the flow is still the same. Enhanced ReFramework provides you better exception handling , Logging and a better structure by providing diff layers. In case you have very complex project which has a lot of subprocesses in it then you must go for Enhanced Reframework as it has “Get Data” and “First Run” Projects (inturn is a small REframework) which would help you to organize your project structure better.
Related Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com
https://go.uipath.com/component/enhanced-reframework-57011 -
Enhanced REFramework is compatible with which UiPath Studio version ?
Response: https://go.uipath.com/component/enhanced-reframework-57011 -
Can you give a brief description about data type of arguments and variables in Enhanced RE ?
Response: Please see the documentation in the enhanced REFramework documentation folder.
Related Link: https://go.uipath.com/component/enhanced-reframework-57011 -
Do we have to use Workblock for each sequence?
Response: Yes. As it has proper structure and better logging capability
Related Link: https://go.uipath.com/component/enhanced-reframework-57011 -
Is Enhance RE framework supports C# language?
Response: C# support is still experimental. However, yes technically its possible. -
If more than 2 lakhs row in excel then can we use transaction as per row to process or is there any different way in RE Framework?
Response: Yes you can.However if you want to process these input by using multiple mahcines then you should always use Orchestrator Queue as it helps to balance the load between different robot machines. You would need to delete some of the activities in order to get the input from excel instead of Orchestrator Queue. In Get transaction Data state , you should delete get transaction activity and add an assign activity to get one row from a datatable (read from Excel). There is transaction Data variable of type Datatable that you can utlilize. -
how to connect RE framework to orchestrator
Response: Reframework is a type of project template that you choose for a process. To publish any project you need to connect your machine to Orchestrator and publish via studio. This is same for Reframework as well. -
How do we Migrate from Classic RE Framework to Enhanced RE Framework?
Response: There is no automatic way to migrate. This needs to be done manually by copying and pasting the code in the correct state. It might not affect the existing flow that you have in classic REFramework, but the place where we set transaction status or check transition conditions would change. As for each process the structure might be different there is no general automatic way to migrate at this moment. -
How can we use Dispatcher and performer in single framework?
Response: In case you don’t want multi-bot architecture then you can have Disptacher in “Init” state and write the code to add queue items in the queue in “First Run” Sequence. The consumer/Performer part would be done in Process state. -
As we have different setting for dispatcher and performer in config file
Response: We don’t have different settings for dispatcher and performer in config. However if you want to do this is Enhanced ReFramework then to get the data you can make use of Get Data subprocess and performer can be included in Process state. -
If we use Advanced RE Framework, is it that, we have to catch only the Business Exception, meaning , we have to write logic for only catching the Business Exceptions. Will the system errors like fatal errors and timeout errors be handled by it by setting the status?
Response: Yes, you must handle business exception as its not part of the framework. Also, Any kind of errors which are not handled would be marked as system error and would be handled by framework itself. However its not a good practice to just ignore any kind of application error. You must handle any kind of application error that you are aware of so that you can give a meaning message. Like for Ex: if there is an application which is generally slow and it takes 3 times to login, so this behavior of the application is know to you . Hence you must handle this kind of error that if robot wasn’t able to login for the first time it should try 2 times more before it marks it under application error. -
Do we need to have multiple config files for each robots? or can i have it in the shared drive so all can access it ?
Response: This depends on how you need it in a project. If in case you have some settings in config file that you would need to change it frequently then it should be places in a shared drive and the path must be taken from Asset. If in case you would not need to change then you can leave it the project folder itself and hence all the robots would access the config from its local folder itself.
Related Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com -
If I have multiple queues and multiple transactions how do i figure out which queue is for which workflow for that where should i mention that in RE Framework
Response: If you have multiple queues and all the queues are source for input then you must mention the name of queue in the config file and change “Get transaction Data” state by adding “Get queue item” activity to read the input from various queues. This needs to be done because by default in Reframework there is only on Get transaction activity added.
Related Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com -
Exception screenshots will those be overwritten everytime ?
Response: No. Because the screenshots are saved with timestamp. So it will always be diff.
Related Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com -
What is the Best practice ? is it to have the RE Framework for all the process that i create or have one process of RE Framework which reads the queue and only use start job in process.xaml
Response: For medium complex and Complex processes you must use Reframework as it provides good exception handling , structure, logging mechanism etc. With this you would need to only concentrate on your process automation and handle business exception instead of thinking about the project structure ,exception handling etc. Also Reframework has incorporated all the best practices for a better structure which helps in faster development. Using only start job in process state might be one of the use case however reframework must be used when you have complex processing and have lot of steps that is part of the process.
Related Link: To know more on Reframework, please go through the “Level 3- Advance training” on https://academy.uipath.com