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,
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.
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!
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
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}
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'))
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'm having the same problem, and I tried your suggested solution @Tom_Slosse. And while I managed to get the dropdown to successfully show item I want as a default, I receive an error upon submitting the form:
"The requested operation is invalid. Server Response: A value must be provided for item".
A quick search for the problem didn't give a lot of info, besides the problem arising for someone using a people field (which behaves the same way due to it also being a sort of lookup). I was wondering how you managed to get this solution without running into the same issue I did? Are there any other steps besides setting the default value? Do you combine this with another method of saving the data besides SubmitForm()? Like Patch for example, which I have seen referenced sometimes, but haven't tried using myself yet.
Second question to @camel:
I've tried your solution as well, adding the bracketed odata-thingy as the Default property of the dropdown connected to the SharePoint Lookup field. But contrary to the above solution, this gives me the following error:
"The requested operation is invalid. Server Response: Value cannot be null. Parameter name: source"
So the same applies here. The default value I want is set successfully, but I can't submit the form. Any ideas?
Hey @Anonymous
If you use First(Search(...))
You need to put a field after the bracket from the function First like this
First(Search(TBL_Locations,Gallery.Selected, "LocationNumber")).LocationNumber
Kind regards
Tom
This is definitely NOT the best approach to do, but I created a object with values needed on the LookUp object to be added to form.
The default property looks like this:
{
'@odata.type' : "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference";
Id : <id_from_the_item_in_the_lookupfield>;
Value: <value_you_want_to_show>
}
Still no good. Also according to this page "Filter, Search, and LookUp functions in PowerApps" the 3rd argument in Search should be used like so:
Also note that the "Center Number" field is the same as "LocationNumber". I added it in there to get the app to work properly. It's just a regular number column and not a lookup.
WarrenBelz
637
Most Valuable Professional
stampcoin
570
Super User 2025 Season 2
Power Apps 1919
473