REFramework with Configuration in Database

Hello,

I’m working on a variation of the REFramework that will load settings from a database.
How do I present this concept to the community?

Assuming that this hasn’t already been done that is?

thanks!

1 Like

Sounds like software development alike. Anyway some of the configuration need to be in the file before connection to the database and fetch all other configuration.

Hi @amnuay

The default Config file will be part of the template.
However, my main concern is the security of the connection to the DB source, most importantly the password.
Even if I did save it as an asset in the Orch or the Windows Credentials Manager, I’m not sure that the SecureString can be used seamlessly in a connection string.

The second issue would be the type of data source. For example, I’m using MySQL as the Remote data source. However, configuring a connection in UiPath for this database isn’t as straight forward.

I’m still trying to figure these two details out.

Hi @AndyMenon

The concept you are working on sounds interesting. Once you have completed the development you can publish your solution as a UiPath Go! Component. It’s a great way to share the knowledge among the community…

Here is the link…

Good luck!!!

4 Likes

Thanks!
Truth be told, I have a RE Framework template that can load settings from a config file, a Local Access DB, and also a Remote MySQL database based on how the configurations are set up.

Unfortunately, I’m unable to configure the MySQL database connection via the UiPath Database activity. I also am seeing that the MySQL integration with Visual Studio Data Sources was taken out at some point in the past.

The fallback would be to go to SQL Server. But that is going to be too tightly coupled and in our company for example, there are no SQL server products, and the only one that exists is slated to be phased out.

1 Like

Well, I have a solution now. Although it was not my most preferred, I will go that way as it seems to be the most suitable.

:+1:

1 Like

I think you need to construct connection string in memory and use it in database connect activity. This should work.

Agreed. But if someone debugged the code, they would still see the connection values.
But there’s an alternate solution where all of that wouldn’t be required. I will be testing the template today and tomorrow by building an RPA process.

thanks

Just finished up with the first round of tests. Results below:

Test 1 - all settings from ConfigDB.xlsx were configured in a Local MS Access database (encrypted with a password) which resides in the Data folder alongside the Excel file.

Test 2 - the very same settings were configured into a Remote AWS RDS PostgreSQL database.

A new MasterConfig.xlsx file in the \Data folder will decide how the configurations will be loaded.

I deployed the empty template to the Orch and executed it as a Job. And in both tests the output indicates 19 settings were loaded.

This below is the initial Config Database Design. Some quick decisions:

  • Regardless of the table structures, a view will be the interface to load configuration settings
  • The REF Template will need a change only if there is a breaking change in the view
  • Multi-tenants can store settings by associating their entries in the Config table with a Tenant_ID from the Tenant table
  • If Active_flg is set to false on the Config table, those settings will not be loaded
  • Similarly, if the Tenant is deactivated, none of the settings for that tenant will be loaded

Next up: Build an RPA application and see how it works end to end.

3 Likes

Looks good. However Not sure about Tenant ID, Name how to obtain such information from robot side. How it benefits your configuration.

The Excel Config file as it exists today is abstract. It has no information by itself to give any hint to where its Robot has been deployed to. Therefore, the Tenant is not a technical attribute. Rather, it’s a means to organize our Robot settings. The configuration settings are organized in the database with the logical names of the tenants tied to them . That Tenant is then put in the MasterConfig.xlsx file of that RPA process.

In most cases, all our Robot machines will have ports opened out to access one single configuration database across our organization, as this database is a remote SQL database such as AWS RDS or Postgres. Therefore, these Robots will go in with the name of their respective tenant and load their settings.

I’ve been thinking about this since my last post, as these questions below are bound to come up when I integrate RPA with our existing Integrations framework.

Will RPA processes be organized just by Tenants?
Or will there be multiple tenants, each running multiple RPA processes?

In which case it would be Tenant + App ID that would make the configuration unique.

Let’s see.

Success! :smile::smile::smile:

I just completed testing an end-to-end application built using new “REF_DB” template configured to load settings from our Remote AWS PostgreSQL database! The process ran to completion after being run from the Orch.

Yep! Building my first RPA application with the new template did bring out the need for better organizing the configuation database. We do need an another key in addition to Tenant_ID.

I have since added a new table to the metabase called Process and altered the view to expose the Process_Name.

I can now add settings for two other RPA processes that I will be building by associating them with a Tenant and Process ID. This will give us the flexibility to deploy applications in multiple combinations of Tenants and processes.

A quick note:

The Configuration Table could be further enhanced.
But for now, it has been retained to be very close to the original Excel file. Which means that the standard settings that come out of the box will have to be copied into this table for each Tenant and Process.

It’s simpler this way than it is to complicate it further.

Next up:

  1. Alter the database and the view
  2. Reconfigure template to load the settings by Tenant Name and Process Name
  3. Add Process_Name setting to MasterConfig.xlsx

:+1:

2 Likes

And the new Interface View Design - Will be publishing the template sometime over the next few days.

To summarize:

  1. Setting_Types are of 3 types - SETTING, CONSTANT, ASSET
  2. Setting_Categories are of 2 types - SYSTEM_DEFINED or USER_DEFINED
  3. Anything that comes by default in the Config.xlsx file are SYSTEM_DEFINED
  4. Anything the user adds is categorized as USER_DEFINED
  5. Tenant_Nm is the logical name of the tenant from the Tenant table
  6. Process_Nm is the name of the RPA Proces from the Process table

The Template will load settings simply as follows:

Select * from vw_config_load where Tenant_Nm = “Your_Tenant” and Process_Nm = “Your_App”

And this is the Database Layout:

2 Likes

@AndyMenon
Cool…

Great work bro!!!

Let me know when this is published in Go! Platform. I’m one of the first to try this out…

Great effort and great outcome… keep it up!!!

1 Like

Love your response my fellow Robot Master! :smiley:

Will be building project #2 with this template tomorrow and running it from the Orch to make sure it works for sure.

Besides, I need to write up some quick documentation on how this thing needs to be set up. Takes the most time!

I will post an update here once it’s done.

1 Like

Haha… yeah… documentation is the part that takes most of the time for me as well :rofl:

Let know if you need any kind of assistance… I wasn’t commenting much here as I was kinda tired up with some hard deadlines at office… but was going through each and every post you made here…

Good luck and great work!!

Would love to see this out in Go community :100:

3 Likes

Awesome! I will reach out if I’m in over my head.

Likewise here. Spent the whole day troubleshooting and fixing a production issue…all this work is done at night.

By the way, this version of the template is the CE one. At work I have to integrate this with our existing framework. The team will not to have yet another database for RPA processes . Although the final view would be the same, the underlying table structures would be different as I cannot have one too many mods.

Thanks so much for offering a helping hand!

2 Likes

Hello Community!
I’ve just published my component to the Go! Marketplace. Hopefully, the powers that be will approve it.
I spent the last 2 days writing a 32 page user guide for this component.

Please find it attached here and let me know your thoughts!

thanks for your help!

Update: 08.30.2019 Name and terminologies of documentation changed based on UiPath feedback. Previously published document nullified and deprecated.

Advanced Enterprise RPA Process Template - User Guide.pdf (3.3 MB)

2 Likes

Hey @AndyMenon

The doc is quite good bro. Really informative and easy to to understand… quite good work…

The publishing process will usually take around a week. So let’s wait for the good news :slight_smile: