cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Sheikx800
Helper II
Helper II

Referencing values from Lookup Objects within Flow

Hello All,

 

I am attempting to build a flow that is triggered via a selected record from a model-driven app.

 

I am using 'get a row by ID' against the 'selected record' to look up a record in the dataverse. This works fine.

 

What I am trying to do from there is get some of the fields from WITHIN one of the lookup fields of that record. I would be happy to set it as a variable at this point. I just dont know how to reference it. I did it by accident once and now I cant for the life of me figure it out. Just my luck!

 

For an example to hopefully make more sense:

I have an Accounts Record that I have retrieved with 'Get Row by ID'. This Accounts Record has a User field in it that is a lookup. 

How would I go about referencing say the Qualifications Field of the User object within that lookup?

 

Thank you in advance!

 

1 ACCEPTED SOLUTION

Accepted Solutions
EricRegnier
Super User
Super User

HI @Sheikx800,

Following your example, you can simply get the User fields/columns with another Get a row by ID action on the User record, for "Row ID" pass the user ID from the Account object via the intellisense. This might give you more flexibility to retrieve additional columns from the user if need be.

If you're keen to user the expand instead, the lookup column name is case sensitive. E.g.

https://org.api.crm6.dynamics.com/api/data/v9.2/cre7b_cars(5e7fb565-b090-ea11-a811-000d3a795cf5)?$ex...cre7b_ParentModel($select=cre7b_name)

More info on this: https://docs.microsoft.com/powerapps/developer/data-platform/webapi/query-data-web-api#retrieve-data... 

Hope this helps!

View solution in original post

9 REPLIES 9
ChrisPiasecki
Super User
Super User

Hi @Sheikx800,

 

You would use the Expand Query to get attributes from your user lookup. Make sure you are using the Name and not the Display name of the columns.  You can retrieve this via the maker portal (make.powerapps.com) > Data > Tables > "table name" > Columns > Name

 

e.g. in your example, your expand query may look something like:

solutionprefix_user(solutionprefix_qualifications)

 

---
Please click Accept as Solution if my post answered your question. This will help others find solutions to similar questions. If you like my post and/or find it helpful, please consider giving it a Thumbs Up.

EricRegnier
Super User
Super User

HI @Sheikx800,

Following your example, you can simply get the User fields/columns with another Get a row by ID action on the User record, for "Row ID" pass the user ID from the Account object via the intellisense. This might give you more flexibility to retrieve additional columns from the user if need be.

If you're keen to user the expand instead, the lookup column name is case sensitive. E.g.

https://org.api.crm6.dynamics.com/api/data/v9.2/cre7b_cars(5e7fb565-b090-ea11-a811-000d3a795cf5)?$ex...cre7b_ParentModel($select=cre7b_name)

More info on this: https://docs.microsoft.com/powerapps/developer/data-platform/webapi/query-data-web-api#retrieve-data... 

Hope this helps!

Sheikx800
Helper II
Helper II

Thanks very much Chris for you very quick reply - You steered me down the right path and I have been trying to read up on Expand Query. I am struggling to find write-ups about the syntax for writing expand query and my knowledge is lacking in this area. There are lots of recommendations of a 3rd party app called XRMToolBox and FetchXMLBuilder but I try to avoid 3rd party stuff and I feel its probably way more than I really require. 

 

Just writing it as you describe, I am getting "Could not find a property named <entityName>". So I feel like I am close but something is not quite right. Its strange that its giving me this error because it definitely does exist within the table. I am time-poor so I have been sitting down to nut it out here and there but I am not quite there yet. Thanks for your assistance. 

 

Eric - Thank you for the extra information. Even if I wanted to do another 'Get row by ID' I wouldn't be able to do it without using expandquery because the 'value' of the lookup field is not the GUID of the record. Unless I am very much mistaken, if I do 'get row by ID' and point at the lookup field, it would look up the primary name for that record and that, in my case, is not necessarily a unique field.

 

 

Sheikx800
Helper II
Helper II

Okay so after Eric's post I took a closer look at the (type) and (value) variables for the Lookup fields that were available and found that (Value) was actually the GUID for the record. As you described, I am now able to use 'Get row by ID' and reference the Lookup(Value) to get the record and the data I require. So Eric, thank you for giving me one way of accessing the data required!

A visual for anyone else wanting some idea of how this worked out for me:

Sheikx800_0-1619437242611.png

 

With that said, the primary objective of this post was to work out how to access this data via the Expand Query that Chris mentioned (even though that wasn't the name of the post). I would very much like to be able to do this because it would no doubt be more efficient for flow processing and I feel it'll be something I'll need to know in the future regardless. May as well try figure it out here! Any idea why I would be getting that error? I have tried using the name and display name of the lookup field in the Expand Query and neither seem to work. I feel like I need to be using a specific syntax but no other resources I have found seem to suggest this.  

Thanks again!

Sheikx800
Helper II
Helper II

Okay so I FINALLY managed to get this working after significant anguish and many hours. It was stupidly simple and I knew the entire time it would be which is what kept me going.

@EricRegnier - It was your underlined comment about things being CASE SENSITIVE that was what ended up saving the day. It turns out that the name COLUMN on the Table page doesnt actually give you the right case-sensitive name to reference the field. Which is, IMHO, insane. You need to reference the SCHEMA NAME in the query for it to work correctly. The only place I have found the schema name referenced directly (and by that I mean copy-pasting it will work) as it should be in the query is inside the power apps advanced settings area with all the database customisation tools:

Sheikx800_0-1619702298571.png

You can get it out of the normal Data->Tables pages as well but only manually by clicking on the field you want and copying it from there:

Sheikx800_1-1619702400820.png

I hope this saves some people the same struggle in the future. Thanks again @ChrisPiasecki and @EricRegnier for steering me in all the right directions. You can only lead a horse to water. 🙂

 

ChrisPiasecki
Super User
Super User

Hi @Sheikx800,

 

So lets take the example from here, which is the Account table trying to retrieve related Contact fields. In the expand, you start with the lookup name on the Account table, then include which attributes on the related Contact table you want to include.

Lookup column name on the primary table = primarycontactid 

Related columns to include = contactid, fullname

ChrisPiasecki_4-1619702776241.png

 

 

To get the lookup column name:

ChrisPiasecki_0-1619702542047.png

To get the related column names you want to include:

ChrisPiasecki_1-1619702647243.png

 

ChrisPiasecki_3-1619702686421.png

 

Hope this clarifies.

 

---
Please click Accept as Solution if my post answered your question. This will help others find solutions to similar questions. If you like my post and/or find it helpful, please consider giving it a Thumbs Up.

Hi @ChrisPiasecki , @Sheikx800 , @EricRegnier ,

This is still somewhat difficult to implement. Is there some video you guys could reference here?
@Sheikx800 - did you in the end use the double Get Row by ID?
@ChrisPiasecki - can you replace the GUID with a dynamic GUID based on the element that triggered the flow on the first place?
Lastly, will this all work the same if the lookup table is looking up multiple tables, albeit with the same parameter names? As this example: https://www.youtube.com/watch?v=UuK92K0CLQE&ab_channel=365.Training

Guys, many thanks for investigating this!


@akptech, possible to ellaborate on your scenario? What exactly are you trying to do and what is your Web API query? 

Hi @EricRegnier , thanks for getting back to me.

My scenario is as following:
I've got a "Component Order" as a parent class to "Components" lookup from multiple tables  (a list of components that will make up a specific Door Type). The Components have some unique properties, but they all share some parameters such as cost and classification code.
Say we have a class: "Handle" and a class "Hinge" with a classification code and a price tag as its property. 

I would like to relate those prices and classification codes to the parent class, depending on the Lookup child class I pick. So if I pick a handle object from a multi-table selection lookup, the Component Order will relate the handle properties and copy them over to the Component Order. This instantiation wrapper will let me use the type properties and multiply them with instance properties such as quantity.

I made a post about this here:
https://powerusers.microsoft.com/t5/Microsoft-Dataverse/multi-table-lookup-Accessing-other-column-da...

Regarding the Web-API query question - Apologies, I don't know how to address that. How can I obtain it?
Thank you so much for looking into it!
Adam

Helpful resources

Announcements
Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on August 17, 2022 at 8am PDT.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Users online (2,381)