Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Power Apps - Building Power Apps
Answered

Can't patch data source with values entered in gallery

(0) ShareShare
ReportReport
Posted on by 28

Hi,

 

I'm building my first Power App.  I've created two galleries which use Dataverse tables as the data source.  The first gallery displays account records.  The second gallery displays contact records related to the account selected in the accounts table using the Items property 'Gallery Accounts'.Selected.Contacts.

 

My contact gallery contains a text input field which displays the contact's email address 1 using the Default property ThisItem.'Email Address 1'.

 

The other fields in the contacts gallery are dropdowns which use the Items property to set the dropdown choices to those available in the data source for that field (for example, the Items property Choices(Contacts.'Preferred Method of Contact') limits my dropdown field to the choices available for the contact field Preferred Method of Contact).  The data source fields are all option sets.

 

The gallery fields display the correct information and the user is able to populate or edit the text input for email and select an option from the dropdowns.  

 

My contacts gallery has a button which on select, should update the contact records in the data source with the new values entered or selected by the user.  I'm trying to use the patch function to update the contact record but I'm getting errors saying the argument type doesn't equal the expected type.

 

To update email address 1, I used: 

Patch(Contacts,ThisItem, {'Email Address 1':ThisItem.'TextInput add or edit email'.Text}) but got the error "The type of this argument 'emailaddress1' does not match the expected type 'Text'. "  I don't know how to format my text input field in the gallery so that its value is recognized as an email.

 

To update the option set fields, I used this format: Patch(Contacts,ThisItem, {'Do not allow Emails':ThisItem.'Dropdown email allow'.Selected}).  I get the error "The type of this argument 'donotemail' does not match the expected type 'OptionSetValue'.  I tried changing my function to: Patch(Contacts,ThisItem, {'Do not allow Emails':ThisItem.'Dropdown email allow'.Selected.Value}) but am getting the same error.  

 

So basically I can't update the Contacts table with any of the user input.  Help, please!

 

Sorry if this post is too long, but I thought more information was better than too little.  Plus, this is my first post!

 

  • SR04027 Profile Picture
    28 on at
    Re: Can't patch data source with values entered in gallery

    Hi 365-Assist,

     

    Thank you for your help.  I got the answer on how to set to do what I originally intended, but your answer gave me an option on a different way I could update a gallery in future.

  • SR04027 Profile Picture
    28 on at
    Re: Can't patch data source with values entered in gallery

    Hi cwebb365,

     

    That worked!  Thank you!

  • Verified answer
    cwebb365 Profile Picture
    3,294 Most Valuable Professional on at
    Re: Can't patch data source with values entered in gallery

    Ahh, I see what you're trying to do. Just remove ThisItem from your patch before the textbox control. You don't need it, the context is the current item in the gallery when using it as the 2nd argument already so you just want to supply the control.text and it should be good. 

     

    Patch(Contacts,ThisItem, {'Email Address 1':'TextInput add or edit email'.Text})

     

    Should get you what you need, assuming 'TextInput add or edit email' is the name of the control in the gallert template item. 

  • 365-Assist Profile Picture
    2,312 Super User 2025 Season 1 on at
    Re: Can't patch data source with values entered in gallery

    Its a bit hard to understand what you are trying to achieve. Can you supply some screen shots or a small video?

  • SR04027 Profile Picture
    28 on at
    Re: Can't patch data source with values entered in gallery

    Hi 365-Assist,

     

    Ok, so in your example BrowseGallery1.Selected is how the patch knows which contact in the gallery to update and the user needs to click the ">" in order to select that contact? 

     

    It makes sense that would work, especially if there is just one set of input fields. 

     

    Do you display or hide the input fields based on whether a contact is selected, and/or do you clear out the input fields once a contact is patched so that the user can input data for a different contact?

     

  • SR04027 Profile Picture
    28 on at
    Re: Can't patch data source with values entered in gallery

    Hi cwebb365,

     

    That makes sense, and in other screens in my app that is how I wrote the patch and it works great, but in those cases all the fields were already filtered for one specific account record.  For the gallery patch I used ThisItem because I wanted to make sure the patch was applying the correct values to the correct record.  Since each contact in the gallery will have an input1, input2, etc. I'm not sure how to write the patch to differentiate which contact is updated with which value.

  • 365-Assist Profile Picture
    2,312 Super User 2025 Season 1 on at
    Re: Can't patch data source with values entered in gallery

    I don't let the user directly update the field in the Collection but rather have a seperate Text Input field/form to do the update.  So my patch looks like this:

     

    Patch(Contacts,BrowseGallery1.Selected,{Email:Email_TextInput.Text})

     

    365Assist_0-1637984887764.png

     

  • cwebb365 Profile Picture
    3,294 Most Valuable Professional on at
    Re: Can't patch data source with values entered in gallery

    I think using ThisItem is where you're running into issues. I don't do dataverse apps, but I'm sure it's the same as using SharePoint / SQL, you should find the actual control name to use from the page/form you have. So click that field you are editing the text at, usually something like textinput1 and use emailaddress1 : textinput1.text in the patch so it uses the value that's in the control to patch with. Same with other one, the dropdown should be the dropdowncontrolname.selected if the values are the same otherwise if you are patching to a text field with a dropdown you use selected.value 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Markus Franz – Community Spotlight

We are honored to recognize Markus Franz as our April 2025 Community…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 146,587 Most Valuable Professional

#2
RandyHayes Profile Picture

RandyHayes 76,287 Super User 2024 Season 1

#3
Pstork1 Profile Picture

Pstork1 65,928 Most Valuable Professional

Leaderboard