cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
henda79
Regular Visitor

Patch not working to Update a record in a local collection

Hey Guys, Im having issues when I'm trying to update a record in a local collection 'MileageCache' using the patch function. The strange thing is the code works fine updating the sharepoint list directly.

 

I am wanting to update a local collection of the sharepoint list so adding records works fine when offline.

 

Here is the code im using, like I say it works fine with the online sharepoint list directly:

 

    UpdateContext(
        {
            tempMileageItem: First(
                Filter(
                    MileageCache,
                    ID = MileageItem.ID
                )
            )
        }
    );

    Patch(
        MileageCache,
        tempMileageItem,
        Patch(
            tempMileageItem,
            {
                'End Mileage': Value(MileageText.Text),
                'End Date': Now(),
                'End Location': Location.Latitude & "," & Location.Longitude
            }
        )
    )

The global variable MileageItem is a single record from MileageCache and is set by:

 

    Set(
        MileageItem,
        Patch(
            MileageCache,
            Defaults(MileageCache),
            {
                'ID':100,
                'Start Mileage': Value(MileageText.Text),
                'Start Date': Now(),
                'Start Location': Location.Latitude & "," & Location.Longitude
            }
        )
    )

Does anyone have any ideas why I am unable to update the record in the collection using the Patch function ?

1 ACCEPTED SOLUTION

Accepted Solutions
timl
Super User III
Super User III

Hi @henda79 

The Patch function can be buggy, especially when local collections and null values are involved.

Here's an example of what I mean.

https://powerusers.microsoft.com/t5/General-Discussion/Patch-not-updating-on-null-values-in-database...

If you just want to update a record in your MileageCache collection, you could consider the use of the UpdateIf function rather than Patch, as from my experience, this tends to work more reliably in these types of circumstances.

View solution in original post

4 REPLIES 4
timl
Super User III
Super User III

Hi @henda79 

The Patch function can be buggy, especially when local collections and null values are involved.

Here's an example of what I mean.

https://powerusers.microsoft.com/t5/General-Discussion/Patch-not-updating-on-null-values-in-database...

If you just want to update a record in your MileageCache collection, you could consider the use of the UpdateIf function rather than Patch, as from my experience, this tends to work more reliably in these types of circumstances.

View solution in original post

henda79
Regular Visitor

Ok, I'll give it a whirl and let you know.

 

I thought its was a issue with Patch as I had spent several hours trying to "debug" the issue, but since you can't debug, issues like this take forever to work out.

 

Thanks.

henda79
Regular Visitor

thanks @timl , using UpdateIf rather than Patch works fine.

It seems that Patch works OK to insert the initial record but it seems to fail for the update with a collection but not for an online source.

timl
Super User III
Super User III

Great! I'm glad that UpdateIf solved your problem

Helpful resources

Announcements
User Groups Public Preview

Join us for our User Group Public Preview!

Power Apps User Groups are coming! Make sure you’re among the first to know when user groups go live for public preview.

Power Apps Community Call

Monthly Power Apps Community Call

Did you miss the call?? Check out the Power Apps Community Call here!

Power Platform ISV STudio

Power Platform ISV Studio

ISV Studio is the go-to Power Platform destination for ISV’s to monitor & manage applications post-AppSource publish.

Top Solution Authors
Top Kudoed Authors
Users online (65,390)