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

Function is not working on every record/row?

Hi,
So I have this Patch function for collection, that is not working with some records, it is always the same records, so some work and some don't.
Out of 11 records, 5 is working. Any Ideas?

Thanks
If you need me to expand on this let me know.

Patch(colMyServiceRequests,                   //collecting from sharepoint list ClearCollect(colMyServiceRequests ,SharePoint List)
Gallery1.Selected,
{
Modified: DateValue("1 jan 2101"),  //I am using this to isolate edited items, After, I am filtering those items and patching them to sharepoint
SpecialistRequired: Toggle1.Value, //value from toggle
TechnicianRepairComments: "Does Technician Comment work", //Comment is hardcoded to understand is it input field or not
Status: {Value: Label4.Text} // updating choice that is reason for {}
}
);

 
12 REPLIES 12
WarrenBelz
Super User III
Super User III

Hi @EmirU ,

Not sure why the Collect is in the middle of the Patch - see if this works

ClearCollect(
   colMyServiceRequests,                 
   SharePoint List
);
Patch(
   colMyServiceRequests,                 
   Gallery1.Selected,
   {
      Modified: DateValue("1 jan 2101"),  
      SpecialistRequired: Toggle1.Value,
      TechnicianRepairComments: "Does Technician Comment work",
      Status: Value(Label4.Text)
   }
)

 

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.

 

 

EmirU
Frequent Visitor

Hi, Thanks for your replay.
The Collect is in the middle of the Patch as a comment.
When I changed Status: {Value: Label.Text} to new Status: Value(Label.Text) I received the Error message: "The type of this argument ‘Status’ does not match the expected type ‘Record’. Found type ‘Number’".

So to be sure that that piece of code is not interfering I reduced Patch function to:
Patch(
colMyServiceRequests,
Gallery1.Selected,
{
TechnicianRepairComments: "Does Technician Comment work???" //Comment is hardcoded to understand is it input field or not
}
);
Don't forget that the same formula works for one item and the second item is not working. Images attached.
Regards

Ok @EmirU ,

It is saying Status is a record - I assume this is a choice field - if this is the case, try the below.

Patch(
   colMyServiceRequests,                 
   Gallery1.Selected,
   {
      Modified: DateValue("1 jan 2101"),  
      SpecialistRequired: Toggle1.Value,
      TechnicianRepairComments: "Does Technician Comment work",
      {
         Status: 
         '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
         ID: 1,
         Value: Label4.Text
      }
   }
)

 

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.

EmirU
Frequent Visitor

Ok, I tried and made changes
Status: {Value: Label4.Text} with
Status {'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",ID:1,Value:Label4.Text}.Still same issue. Field/Record name: TechnicianRepairComments: "Does Technician Comment work" is not working on some items, all other fields work on all times.
So the Status field was working on all the items, only TechnicianRepairComments doesn't work on 5 items out of 11.
This issue is very interesting. I don't understand what is the difference between items that can determine whether or not one field in Patch formula will update one and in others don't. I checked, so items ID number 15,13,8,4,2 works fine and items id14,12,11,16,3,1 don't work.
Thanks

Thanks @EmirU ,

A question I probably should have asked before - what is the Text property of Label4?

v-yutliu-msft
Community Support
Community Support

Hi @EmirU ,

Do you want to edit the selected item?

Since there are many uncertain places in your issue, I need you to firstly answer my these questions:
1)what is Gallery1's Items?colMyServiceRequests  or your SharePoint List?

2)whether do you want to update the collection or the sharepoint list?

3)what are these fields' data type: SpecialistRequired, TechnicianRepairComments,Status?

4)what is Label4's Text?

5)if Status is a choice type field, does it allow multiple choice and what are the choices of the field?

 

Firstly, let me explain the wrong places in your precious formula.

  • The patch function's syntax: Patch( data source, item in data source, {...}

Please do not put clearcollect inside Patch function.

  • Modified is a system field. It's not supported to update this field. Its data will be generated automatically when you update the record.
  • If Status is a single choice field, you need to use {Value:...} to update it. If is a multiple choice, you need to use Table({Value:....}) to update it.   Value(..) means transfer a text value to number value. It is different from updating a choice column.

 

Next, how to modify your formula.

Based on your formula, I think  SpecialistRequired is a yes/no field,TechnicianRepairComments is a text field ,Status is a choice field.

1)If gallery's Item is colMyServiceRequests and you want to update colMyServiceRequests

Try this:

ClearCollect(colMyServiceRequests ,SharePoint List);
Patch(colMyServiceRequests,                   
Gallery1.Selected,
{
SpecialistRequired: Toggle1.Value, 
TechnicianRepairComments: "Does Technician Comment work", 
Status: {Value: Label4.Text} 
}
);

please make sure that the text in label4 is one of status field's choice.

2)If gallery's Item is SharePoint List) and you want to update colMyServiceRequests

Try this:

ClearCollect(colMyServiceRequests ,SharePoint List);
Patch(colMyServiceRequests,                   
LookUp(colMyServiceRequests,ID=Gallery1.Selected.ID),
{
SpecialistRequired: Toggle1.Value, 
TechnicianRepairComments: "Does Technician Comment work", 
Status: {Value: Label4.Text} 
}
);

//make sure patch's first parameter and second parameter is from the same data source.

 

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
EmirU
Frequent Visitor

Hi,

Label4 is showing Status.Value from the main gallery and if I select something from the dropdown gallery that I created then it will show a selection from the dropdown. The reason to do this and not to use dropdown control is, I have much more control over style.

Label4 Text: is  If(!IsBlank(Gallery3.Selected),                                          //is item in main gallery selected?
                            Gallery3.Selected.Value,                                              //if yes return selected choice option
                            Gallery1.Selected.Status.Value                                    // if no return value from gallery1 selected item
                             )

Still, Label4 or Status record is not the issue, the issue is TechnicianRepairComments record

So to be sure that that piece of code is not interfering I reduced Patch function to:
Patch( colMyServiceRequests,
Gallery1.Selected,
{
TechnicianRepairComments: "Does Technician Comment work???" //Comment is hardcoded to understand is it input field or not
}
);

But the issue persists.

@EmirU ,

I will leave you with @v-yutliu-msft @here.

Please tag me if you want further input.

EmirU
Frequent Visitor

Hi,
Thank you for your help. I will answer all of the questions below.
Do you want to edit the selected item?
Yes In Gallery1 I am selecting items from collection colMyServiceRequests and then I am trying to patch edited records back to the SharePoint List ServiceRequests.
Since there are many uncertain places in your issue, I need you to firstly answer my these questions:
1)what is Gallery1's Items?colMyServiceRequests or your SharePoint List?
Gallery1's Items is collection colMyServiceRequests that is clearcollect of SharePoint list 'Service Requests'. So Once I select an item from the Gallery1 I am going on another screen to edit it, hance editing collection.
2)whether do you want to update the collection or the SharePoint list?
I want to update collection at first and if that is a success than update SharePoint on another event (btn on another screen) I am using the Modified field to filter our items that are edited or deleted.
3)what are these fields' data type: SpecialistRequired, TechnicianRepairComments,Status?
SpecialistRequired: boolean true/false,
TechnicianRepairComment: Text
Status: choice with ["Dispatched","PendingRepair","Completed"])
what is Label4's Text?
Label4's text = If(!IsBlank(Gallery3.Selected),Gallery3.Selected.Value,Gallery1.Selected.Status.Value
)
5)if Status is a choice type field, does it allow multiple choice and what are the choices of the field?
Status is choice field and choices are: ["Dispatched","PendingRepair","Completed"]) it doesn't allow multiple choice.

 

Now to revise my formula: The Patch syntax is:
Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])
The collection is not in it, In one of my post, there is collection as comment separated with "//"

Please do not put clearcollect inside the Patch function.

Modified is a system field. It's not supported to update this field. Its data will be generated automatically when you update the record.
Modified is a system field, but it is SharePoint system field, I am changing it so I can filter all of the records that are edited, once I push Patch collection to SharePoint that field would be overwritten. And finally, I tried to update only: TechnicianRepairComments so I don't have to think, are other fields interfering or something. Don't forget out of 11 items all fields are successfully edited except TechnicianRepairComments field on 5 of thous items. So I tried this formula, and results are the same
Patch( colMyServiceRequests,
Gallery1.Selected,
{
TechnicianRepairComments: "Does Technician Comment work???"
}
);

If Status is a single choice field, you need to use {Value:...} to update it.

Status is a single choice field and I am using Status: {Value: Label4.Text} to update it.
If is a multiple choice, you need to use Table({Value:....}) to update it. Value(..) means transfer a text value to number value. It is different from updating a choice column. I didn't know this thanks.
Since colMyServiceRequests is the collection and gallery1.selected is item form that collection I tried your formula:
ClearCollect(colMyServiceRequests ,SharePoint List);
Patch(colMyServiceRequests,
Gallery1.Selected,
{
SpecialistRequired: Toggle1.Value,
TechnicianRepairComments: "Does Technician Comment work",
Status: {Value: Label4.Text}
}
);
And it is working, I even added Modified: DateValue("1 jan 2101") , What I don't understand Why I have to ClearCollect again since I did that on the screen before. And If I do ClearCollect on every Item, edit that I did on the previous items won't be there. Is there any other way to do this but without clearcollect right before Patch? Thanks once again.

Helpful resources

Announcements
PA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Power Query PA Forum 768x460.png

Check it out!

Did you know that you can visit the Power Query Forum in Power BI and now Power Apps

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.

PowerPlatform 768x460.png

Microsoft Learn

Check out our new Discover Your Career Path blog post series and get all the details.

Users online (1,188)