cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Laura3
Helper I
Helper I

Patch combobox default selected items created with variable

Hi there

I created a people picker for a combobox (canvas app based on Sharepoint list) based on this video (https://www.youtube.com/watch?v=SRKHfv4XYJE) by @aprildunnam This is by far a much better user experience for a people picker. 

In short, with a variable I set the default selected item for the combobox. This displays perfectly fine but I can't seem to patch it back to the datasource. The patch works totally fine if I manual select the person in the combobox, but not if I use the variable to select the default selected items. Any ideas?

1 ACCEPTED SOLUTION

Accepted Solutions
RandyHayes
Super User
Super User

@Laura3 

So, before you jump on this, and why I delayed providing what you just posted until now is based on the Edit and New of records.  Your solution will not work for the Edit. Which is why it is not worked out.

And again, do you really want to do two data actions? i.e. the Patch and SubmitForm?

All of this should be in your form.

 

Here is what you need - let's start with the DataCard

For your DataCard for ResponsibleOfficer -

The Default property should be: ThisItem.ResponsibleOfficer

The Update property should be: 

{
    Claims: "i:0#.f|membership|" & Lower(yourGallery.Selected.Mail),
    Department: "",
    DisplayName:"",
    Email: yourGallery.Selected.Mail,
    JobTitle: "",
    Picture: ""
}

(you must have seen an old article/post as the odata column is no longer needed)

 

For your Combobox - well, you don't really need it, so you can ignore it.

 

Here is where your problem comes in.  If you go to edit a record, your ResponsibleOfficer column will be written over with the wrong value.  And worse is that if a person goes to edit or view the ResponsibleOfficer in the Gallery, it will be wrong.

If you are relying on the Gallery as the provider of the ResponsibleOfficer then it needs to default to the proper record.

 

So, we need to take one step back...what is the Item property of your Form?  This will be the start to getting the proper information back in place when you edit a record.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

13 REPLIES 13
RandyHayes
Super User
Super User

@Laura3 

What is the Items property of your Combobox?

What is the formula for your patch statement?

And, if you have a current DSI (DefaultSelectedItems) property, what is that?

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!
Laura3
Helper I
Helper I

Thanks @RandyHayes  for your quick reply. The Items for my combobox are Choices([@Database].ResponsiblePerson) the Default Selected Items, are the ones I set with a variable that I called SelectedPerson. The Patch function I used is Patch(Database,Defaults(Database),{ProjectID:"xyz",ResponsiblePerson:Combobox1.Selected}). I have also tried the same formula as above but changing the last part to ResponsiblePerson: SelectedPerson 

Neither of those work. I've also tried patching by using the ClearCollect(MyUpdates,Form1.Updates);SubmitForm(Form1) That does not work either. However, if I manually go to combobox 1 and I manually select the person it does in permutations 1 and 3 of the formulas (n2 I just made up). However, the people picker version described in the video, is so much better and that's what I wanted to use. 

RandyHayes
Super User
Super User

@Laura3 

So of the tries...

- First, tell me about the SelectedPerson variable you have and how (and why) you are setting that?

- If your combobox is based on the Choices of a Person column, then it will have all the information needed to accurately update a person column.  Combobox1.Selected would represent a single person record from that control.  If changing to SelectedPerson, then again...need to know more about that and where and why it is set.

- The ClearCollect thing is of no value...discard.

- That statement and your final statement is of interest...are you trying to set the DefaultSelectedItems of the combobox or dealing with a Patch issue - and why Patch when you seem to have a Form?

- Final question - what is the definition of your Person column, is it multiple select or single?

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Wow, thank you so much for your help with this. You are amazing! Let me explain what I'm doing. 

I have created a little pop up with a text input and a gallery (because it is visually much better than searching the combobod and also not all the records display in the combobox). The gallery items are all the users (office365 users) filtered by the text in the text input. The user can search the user by typing the name, the data in the gallery is filtered to find the right name. Then the user selects the person from the gallery and this populates the combobox in the form. The variable SelectedPerson is created by selecting the record in the gallery. I then set the default selected items in the combo box as SelectedPerson. I have set the combobox as accepting only one variable. I guess I could get rid of the combobox altogether, although it might be a more familiar experience for the user to pick a name from a pop up and see it populated in the form... but that doesn't solve my problem of patching the data back to my datasource. Thank you so much!

RandyHayes
Super User
Super User

@Laura3 

So why Patch?  If this is in a form, then you should be doing SubmitForm on it.

Let's start on that one first.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Tried that. It doesn't work. It will pass all the other data on to the datasource but not the selected person.

RandyHayes
Super User
Super User

@Laura3 

Okay, let's abandon the patch...you don't need it and it can all be included in your form submit.

Your problem is that you are using the Office 365 users records to try and populate the SharePoint user record.

 

What is the Update property of the DataCard for your ResponsiblePerson column?

 

Also, I gather you are then displaying a Gallery and a textinput to search through the gallery.  The Gallery is limited to the maximum returnable users from the SearchUser action.  You then use the Filter function in the Items property of the Gallery to do the search.

Feel free to provide the formulas for any of those to further get you to where you want to be.

Tell me more about the combobox...and the SelectedPerson variable. What is the formula you are using to set that?

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!
Laura3
Helper I
Helper I

So for the update property I've tried both Datacard3.Selected and I've tried with the variable SelectedPerson

All the rest is as you say. I use a text input to search the gallery and on selecting the person from the gallery it sets the variable SelectedPerson. I tried patching because the submit form didn't work for me, and it's true I don't need it ... but I still want to learn if there is a way. Thank you so much for your help Randy, you really are great. 

RandyHayes
Super User
Super User

@Laura3 

DataCard3.Selected is of no use as that is a datacard.  SelectedPerson is most likely based on the Office365 User which will never work.

I still am looking for information from you about how you are setting that variable.

If you could provide the formulas on the Gallery Items property, the OnSelect action and any other relevant formulas on the gallery (like the Default property).  Plus, the Items property of the Combobox and the DefaultSelectedItems property of the combobox.

And finally, the Default property of the DataCard.

 

Also, let me know...is the intention of this form and people picker for New records or also for editing existing records?

 

Yes, this should all be done in your form.  There is no need for an extra patch.  BUT, the record types need to be correct.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Helpful resources

Announcements
PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Top Solution Authors
Top Kudoed Authors
Users online (3,481)