UiPath Data Service | Configure, Enable, and Usage of Entities

HI All,

Along with the latest 20.8 Preview release, we got a newcomer, which is the UiPath Data Service. The platform that enables us to create relational data models to be used within RPA solutions and Apps.

You may have multiple questions around it. Such as:

  • What is UiPath Data Service
  • Why it is needed
  • How to configure and enable Data Service
  • User management
  • Entity creation
  • Building relationships between entities
  • Showcasing how the data will be represented

You can refer to the new video I published today, covering the above topics.

I will be publishing the second part of this topic, that covers the use of Data Services in UiPath workflows. Stay tuned!! :slight_smile:


That’s awesome! Thanks, @Lahiru.Fernando! :smile:

1 Like

This is great work @Lahiru.Fernando! Thanks for creating this content.

1 Like

Thank you so much @monsieurrahul and @ankit.saraf :slight_smile:

1 Like

@Lahiru.Fernando can you plz let.me know how to get record from entity by id ??this i have tried but not working for me

Hi @Atishay_Shrivastava, what error or issue are you facing when trying with that activity?

You need to first select the correct entity type in the dropdown, then provide the ID value (stored as GUID) for the record you want to retrieve and then provide the output variable where you want to store the record.

Please look at the documentation here - https://docs.uipath.com/activities/docs/get-entity-record-by-id

Hi @Atishay_Shrivastava

Good morning. Sorry for my late reply.
Please try the method Ankit mentioned.

  1. First select the entity from the dropdown,
  2. Then provide the GUID for the record ID you want to extract… It has to be of GUID type

@ankit.saraf and @Lahiru.Fernando please find the screenshot and i m getting error like Get Entity Record By Id: Specified Id is missing or not valid.

1 Like

HI @Atishay_Shrivastava

I notice that you have initialized the Logit variable with new LoginDetails through the assign acivity
This initialization will create a empty, but LoginDetails type variable. It will not have any data unless you assign any value to its related fields.

So, in the workflow, you have the assign, and right after it, you are using the Get Entity Record by ID activity, where you specify Logit.ID for the Record id. But this value you provided is empty because you have not assigned any value to it.

That is why you are getting the error. You need to assign a value after the assign activity you have there, and then try it.

You may ask how should I know the value to assign?
You can do a normal query activity to get the records as I have explained in my videos, and use that variable with the ID field here to get the record.

Added Note: Two ways to get the ID
Either right after inserting a record (by using the output property of the insert activity)
by query entities activity (as explained in the video)

1 Like

@Lahiru.Fernando sir your point i got it but i have not understood the Assigning can you explain me here like
Logit= New LoginDetails this is correct
logit.id =id this ia your point can you clearify me .

Ok… so let me take it step by step.

Logit - new LoginDetails
This will initialize your variable Logit with a new LoginDetails type object. But this is a empty variable and will not have data, because it was newly initialized.

Now for you to use this to get the ID, you first need to assign some values to this.

How to assign? and what should I assign?
Two approaches we can use here.
How do we get the value for the ID field?

  1. After inserting values to entity - by using the output property of the insert activity
  2. Querying the entity - The output result provided by the query will have an ID for each row returned.

Now I’m gonna explain each

After Inserting
So in the insert activity, there is an output property as you saw. So what happens there is, once you insert, it will return the system field values to you through the output property. Fields like, ID, created by, Created date etc.

Using this variable, if you specify Login.ID in the row ID field of get row by ID activity, it will give you the inserted row.

After Querying using Query Activity
Querying will give you a List type variable correct?
So, using this, if you assign the value in the ID field to a GUID type variable, or else, if you use the Get record by ID field in the loop, and use the input property you can get the record.

1 Like

@Lahiru.Fernando i got it your point ,thanks for the explanation
at what happens as you know the uipath have release the feature uipath test suit for that i m thinking that for data driven testing we can use data services for that and replace the excel to data services as per my understanding uipath have to should simplify this because it is to complicated. we can direct access the data if we are using data services. so as all records can save and we can use as data driven testing.

1 Like

@Atishay_Shrivastava - Yeah, we can use Data Services for testing purposes as well. So according to my understanding, once the robot is connected to the service, you can have direct access to the entities you have created from anywhere.

May I know, which part is complicated?

@Lahiru.Fernando as i have created my project by using excel we have initialize the varbial in type into activity as you now CT.Item(“Dept”).ToString like this but here we cant because in framework testing we have to created smaller workflow to use and person comes if he create any variable in excel automatically not need to modified data will access but here in main we have to initialize the activity then asking for arguments but in excel we have already define in invoking workflow.

Bro, I didn’t fully understand what you said, let me summarize what I understood so you can clear me out if I got it wrong…

So you are using an excel file, to get data currently and you are looping through it and getting the data as you specified using CT.item etc.
and next, you say is that when using data services, we need to initialize the variables, and get values from the entities using different other activities, but in excel, it is straightforward as we already have data in the datatable?

@Lahiru.Fernando s your understanding is correct … sir can you plz clear after connecting the robot we may access the data direct?

1 Like

To answer your question, Yes, once you connect the robot to the Orchestrator, you should have access. But one thing we have to keep in mind. The robot has to be in a modern folder.
In other words, the standard robot we used to have will not work as these services are supporting the Modern features.
So how to create a modern type robot? Go to Tenant -> Users -> Edit -> create robot for user

This robot has to be connected with your local robot through Assistant settings panel. and You will have access to all the entities you create.

@Lahiru.Fernando this is is nice concept sir.

@Lahiru.Fernando sir i have one doubt sir if uipath using so much innovation with using AI we also implementing in Web page get the all the input type elements and click type elements and creating the scripts.this is juts my thinking.

Referring back to this point,
it is not that complex.
You feel it easy because read range gives you a direct datatable with ease. But when it comes to Data Service, that slightly changes because these are different custom data types.

Just think of a Car for example. You have so many features. So to access any feature of a given car, we should have a Car type variable. and say options of a car, we have multiple options. So there can be relationships. If we are to include them in a data table, it will have multiple rows to display all of these values because it is complex.

So, This Data Service model gives you those values with ease. Just think the entity as a Car, and the columns you specify are its features etc.
So when you initialize a variable of type Car, you say you want a Car. but you don’t say what car you want :slight_smile:

That’s where we need to get the value from the Entity, either after inserting a car to a entity, or after reading the data by querying.
Then you have the info of the cars, and you can say which car you need from what you have.

Thats the concept behind it :slight_smile:

Getting all the elements on a web page into a single variable could by while ineffective as we will be reading all needed and unwanted stuff. Additionally, the designs could be complex too, for example, you may have containers, and containers inside it, and elements, and some pages load by itself while scrolling…

So it would be easier, to get the indicated elements, and it will be easier for the developer to use it too … But that’s just my thought :slight_smile: