cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
kfesenko
Frequent Visitor

Set Default Value for Lookup Field in New Form

My project is an inventory management system, using two SharePoint lists; TBL_Locations and TBL_Assets. TBL_Assets has a lookup column called "LocationNumber" to a column in Locations called "LocationNumber".

 

I have created a standard app from the TBL_Locations list, and added a gallery to the second screen which shows the assets for the specified location.

 

I've added a button which opens the form to create a new asset. It doesn't really make sense to have a user select the LocationNumber manually since they have already selected a location to be working from, so I'd like to have that field automatically populate based on the Screen_Location.Selected.LocationNumber value.

 

However this doesn't appera to be quite a straightforword as I would expect, and I haven't been able to follow the other discussions on similar topics in this forum to achieve this goal.

 

Cheers,

15 REPLIES 15

Can we get an update from devs on this issue please?

 

I have the same problem: essentially, how to set a Lookup value in a dropbox listbox control, when creating a child in a parent-child relationship. This is using Sharepoint lists with lookup columns.

 

In my case I'm selecting the related record in a gallery, then adding a new child record, using a button to navigate to another screen with an edit form. While PowerApps figures out the possible Lookup relationships fine (i.e. populates the dropdown list), having to manually select the parent (i.e. the Lookup value) is incredibly tedious and redundant when the parent is already selected on the first screen.

I finally got it working following @camel's approach. E.g. set the default of the lookup data field to 

{
    '@odata.type' : "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
    Id : MyGallery.Selected.ID,
    Value: MyGallery.Selected.Title
}

And then, possibly, make this data card invisible in the GUI.

 

An alternative approach that I also explored is to not use "SubmitForm" but instead manually add the record to the data source. E.g.

Collect('MyCollection',{
    Title: "Test",
    MyLookupField: {
        '@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
        Id:1,
        Value:"Hardcoded for testing only"
        }
    }
);
Set(MyErrors, Errors('MyCollection'))

 

Anonymous
Not applicable

This is great. Thank you for sharing. It helped me solve something I was batting with for a while.

 

For me, this code worked...

{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",

Id:BrowseGallery1.Selected.ID,

Value:BrowseGallery1.Selected.Title}

 

This one also worked, which referenced the last submitted value from an edit form instead of the browse gallery

{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",

Id:EditFormCustomer.LastSubmit.ID,

Value:EditFormCustomer.LastSubmit.Title}

 

How would I reference a parent value of the previous view screen? I tried context variables (see below) but that didn't work. The error came up with the message: "The requested operation is invalid. Server Response: A value must be provided for item.

 

For the testing I am displaying the context variables "paramCustomer" and "paramID", per the screenshot below, so they seem to be storing the correct values, but somehow the way I am pulling them into the default configuration must contain a syntax error of some kind. 

 

Did not work... any idea why...?

{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",

Id:paramID,

Value: paramCustomer}

Untitled.jpg

BenFetters
Continued Contributor
Continued Contributor

Hi all, 

 

I was able to set the default in a SharePoint customized form with the formula below, but it should also work in a canvas app. 

 

First(Filter(Choices(ListName.LookUpColumnName),LookUpColumnName.Value = "Desired Default Value"))

 

List Name: Name of the list that your form is looking at for the DataSource

LookUpColumnName: The lookup field that you want to set the default value to

 

I hope this has been helpful! Let me know if this doesn't work for anyone or if it does work. 

 

Have a great day,

Ben Fetters

If this solved the problem for you, feel free to hit "Accept as Solution" so others can find the answer easier. 🙂

Kind regards,

Ben Fetters
Power Apps/Power Automate Developer
www.sovereignsp.com

I have a simular question:

I want to give the possibility to the user to change the default value of a lookup column.

I have a sharepointlist with a lookup column.
In PowerApps , the user can choose the default value in a dropdown. I created a form and set the default and defaultselected of the datacarddvalue:

{
'@odata.type' : "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference";
Id : browsegallery1.allitems.id ;
Value: Dropdown_for_default.selected.namecolumn
}

In the form in PowerApps it works perfect. But When i try in the sharepointlist. It doesn’t give me the default value.
Every Day There is an item created with a flow.
Requirement is: the user can set the default value.

TomDegler
Frequent Visitor

Hey, 

 

I was struggling with same issue for a moment.

I have solved this much simplier way than already posted, and maybe someone else can use this solution as well.

 

I am working here with SharePoint lists, not sure about other data sources.

 

  • most important problem is, that lookup field cannot take simple value as default. It has to be a record.
    • As posted above - you can use custom solution, however not everyone wants to depend on external solutions.
  • you can actually feed lookup field with record (doable)
    • you can build it on the fly directly in the "default" formula,
    • or you can use record type variable in "default" parameter.
    • If you choose variable approach you can plan scenarios with more control

 

In my scenario I was able to control whether the value is copied or not.

Simply build the variable (record type), providing ID and Value fields, when parent record is selected.

Use this variable in your "default" value of target Data card.

 

No hacks, no external solutions, no complicated formulas : )

 

Good luck!

Helpful resources

Announcements
PA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

secondImage

Power Apps Community Call

Please join us on Wednesday, October 20th, at 8a PDT. Come and learn from our amazing speakers!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Top Kudoed Authors
Users online (2,523)