web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Patch function Error "...
Power Apps
Answered

Patch function Error "expected type Record. Found type Text" with Choice column & Text input

(0) ShareShare
ReportReport
Posted on by 195

Collection 'HSEScoreValues' made with below formula & storing data OK but when Patching to SP List it gives error of expected type Record / Found type Text:

 

Collect(
 HSEScoreValues,
 {
 project_name: DataCardValue1.Selected.Value,
 category: Text(LookUp(
 'HSE-CategoryQuestion',
 Question = QuestionLabel.Text,
 ThisItem.Category
 )),
 question: QuestionLabel.Text,
 score:Value(ScoreTextInput.Text),
 survey_date: DataCardValue2.SelectedDate
 }
)

 

Data saved is in tabular form as expected/required:

Snap 2021-08-02 at 11.56.11.png

 

Error is in Patch function:

Snap 2021-08-02 at 12.09.38.png

 Both with list columns 'Project Name' & 'Category' it is expecting type Record when they are actually Choice fields and should accept Text value easily.

 

I tried with Collect function where I remove .Value from Datacard.Selected.Value (Datacard.selected) the error goes but Collection now saving data in 'Project Name' as collection (not as desired)

 

Collect(
 HSEScoreValues,
 {
 project_name: DataCardValue1.Selected,
 category: Text(LookUp(
 'HSE-CategoryQuestion',
 Question = QuestionLabel.Text,
 ThisItem.Category
 )),
 question: QuestionLabel.Text,
 score:Value(ScoreTextInput.Text),
 survey_date: DataCardValue2.SelectedDate
 }
)

 


What is the right way to Patch values here?
 @WarrenBelz @BCLS776 @CNT @Pstork1 @yashag2255 @Krishna_R @RandyHayes @eka24 @Krishna_R @yashag2255 @Nogueira1306 @KvB1 @rubin_boer @StalinPonnusamy @RandyHayes @BCLS776 @DylanSimons @BCBuizer @Jeff_Thorpe @RezaDorrani @PriyankaGeethik @Nogueira1306 @Sid_Jafri @Krishna_R 

Categories:
I have the same question (0)
  • Verified answer
    PriyankaGeethik Profile Picture
    3,320 Super User 2024 Season 1 on at

    Hi @akg1421 ,

     

    For Choice fields would try below formula in your patch code ? 

     

    ChoiceField:{Value:"Your Value"}

     

    Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

  • Verified answer
    v-albai-msft Profile Picture
    Microsoft Employee on at

    Hi @akg1421 ,

    Two things you should pay attention:

    1. Make sure if you have enable "Can add values manually" for your Choice column.

    valbaimsft_0-1627976595902.png

    2. Then the formula should be like this:

     

    ForAll(HSEScoreValues,Patch('HSE-Report',Defaults('HSE-Report'),{'Project Name':{Value:project_name},

    Category:{Value:category},.....}))

     

    Here is a simple example of mine:

    valbaimsft_0-1627976831066.png

    Best regards,

    Allen

  • StalinPonnusamy Profile Picture
    Super User 2024 Season 1 on at

    Hi @akg1421

     

    Please try this. Lookup line says it references other SP list

     

    Collect(
     HSEScoreValues,
     {
     project_name: DataCardValue1.Selected,
     Lookup:{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
     Id:ThisItem.Category.Selected.Value,
     Value:ThisItem.Category.Selected.Value},
     question: QuestionLabel.Text,
     score:Value(ScoreTextInput.Text),
     survey_date: DataCardValue2.SelectedDate
     }
    )

     

  • StalinPonnusamy Profile Picture
    Super User 2024 Season 1 on at

    Hi @akg1421

    • Please find the sample for your reference
    • Previously mentioned "Lookup" is nothing but your filed name on the list 1 which references List 2

     

    Collect(
     HSEScoreValues,
     {
     project_name: DataCardValue1.Selected,
     ColumnName:{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
     Id:ThisItem.Category.Selected.ID,
     Value:ThisItem.Category.Selected.Text},
     question: QuestionLabel.Text,
     score:Value(ScoreTextInput.Text),
     survey_date: DataCardValue2.SelectedDate
     }
    )

     

     

    Working Sample for reference:

     

    Patch(
     'Aisle Assignment',
     Defaults('Aisle Assignment'),
     {
     Title: DataCardValue5.Text,
     'Aisle Number': {
     '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
     Id: ComboBox2.Selected.ID,
     Value: ComboBox2.Selected.Title
     }
     }
    )

     

     

     

  • amk1421 Profile Picture
    195 on at

    @PriyankaGeethik  *Wow!* in owen wilson's voice

  • Community Power Platform Member Profile Picture
    Microsoft Employee on at
    ColumnName:{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
     Id:ThisItem.Category.Selected.ID,
     Value:ThisItem.Category.Selected.Text},

    I don't know how that worked for you. This is how I had to do it in my Patch method:

     { 
     'My Column Name': {
     Id: LookUp('My Other List', 'MyLookupField'=cmdMyComboBox.Selected.Value).ID,
     Value: cmdMyComboBox.Selected.Value
     }
     }

    You can't do a .Selected.ID, only .Selected.Value. So you have to do a Lookup to the other list where the field originated in order to get its ID using the .Value from the combobox's value.

  • Navishamun11 Profile Picture
    60 on at

    Hello Everyone,

     

    I am new to PowerApps.  I'm trying to patch all my items from PowerApps to a SP list but i am unable to do it. The code i am trying to execute is below. I used the toggle to execute the patch. There is no error in the code however the patch is not working. 

    Code i used for Submitting. Can anyone please help me what i am doing wrong.

     

    ForAll(
    Filter(
    Gallery2.AllItems,
    Toggle1.Value = false),
    Patch(
    PMInspections,
    Defaults(PMInspections),
    {
    Title: TextInput_Action,
    Status: Combo_Status.Selected,
    Comments: TextInput_Comments,
    PMInterval: Combo_PMInterval.Selected.Value
    }
    )
    )

  • Community Power Platform Member Profile Picture
    Microsoft Employee on at

    This should have been a new question, but you could have looked at what Stalin Ponnusamy & I posted for an example of how to use Patch. If you aren't using multiple forms, though, I don't know why you wouldn't just use SubmitForm(formNameHere). Maybe you just want to submit just those fields, I guess. But, in any case, when you have a lookup field, you must manually find the ID and value for that field. You cannot just do PMInterval: Combo_PMInterval.Selected.Value, for example, if PMInterval comes from a SharePoint list. A choice field presents a similar problem. So you would have to do something like:

     

     

    Patch(
     'PMInspections', 
     {ID: Value(lblID.Text)},
     Defaults(PMInspections),
     { 
     Title: TextInput_Action.Text,
     Status:
     {'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
     Id:1,
     Value:Combo_Status.Selected.Value
     },
     Comments: TextInput_Comments.Text,
     PMInterval: {
     Id: LookUp('My PMInterval List', 'MyLookupFieldName'=Combo_PMInterval.Selected.Value).ID,
     Value: Combo_PMInterval.Selected.Value
     }
     }
    )

     

     

     

     

    This assumes that "Status" is just a Choice field and you want the 2nd option, since ID of 0 is the 1st option, and that "PMInterval" is a lookup field to a list.

     

    You didn't provide enough details to know what you were doing and where your data was coming from. It's also where you might not need to call out those specific fields if they were all just within a single form. You could just have them like that, and then do:

     

     

     

    Patch(
     'PMInspections',
     {ID: Value(lblID.Text)},
     Defaults(PMInspections),
     Form1.Updates,
     {
     PMInterval: {
     Id: LookUp('My PMInterval List', 'MyLookupFieldName'=Combo_PMInterval.Selected.Value).ID,
     Value: Combo_PMInterval.Selected.Value
     }
     }
    )

     

     

     

    You will always have to do the lookup field afterwards, regardless, because SharePoint doesn't like updating those automatically since it doesn't know the ID to use.

     

    And speaking of IDs, you'll note that I'm using lblID.Text. I have the ID being populated into a hidden label because I don't need it nor want it displayed on the form. So this is a way to ensure it can update. Without the ID field, it cannot, unless you use a similar trick. For example, I probably could have added the ID field and then hid it, and then just replace my lblID with whatever I named the DataCard's textbox (txtID, or whatever...). 

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

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the April Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
Vish WR Profile Picture

Vish WR 1,055

#2
Valantis Profile Picture

Valantis 666

#2
11manish Profile Picture

11manish 666

Last 30 days Overall leaderboard