Hello,
I'm having an issue with Patch() creating duplicate records in my collection. My goal is to update a few fields in a record within a collection and then Patch the collection to the database to update the fields in the database. The issue I'm running into is that Patch is creating a duplicate record in the collection. I have a gallery, where a user selects a record and can delete the record. The delete is a soft delete in that a field in the record contains an IsDeleted value. Here is the collection before modification:
Here I've selected the record I wish to delete and verfied that the selected record is correct by using a label to display the PK ID of the record.
Here is the orignal collection now showing a duplicate value:
Finally, here are the various permutations of Patch I've tried to make this successfully work:
Using Lookup:
Patch(PendingEquipmentRequestsCollection, Defaults(PendingEquipmentRequestsCollection),
LookUp(PendingEquipmentRequestsCollection, ID = PendingEquipmentGallery.Selected.ID),
{IsDeleted: true, ModifiedDate: Now(), ModifiedBy:varCurrentUser.Email}
);
Using First/Filter:
Patch(PendingEquipmentRequestsCollection, Defaults(PendingEquipmentRequestsCollection),
First(Filter(PendingEquipmentRequestsCollection, ID = PendingEquipmentGallery.Selected.ID)),
{IsDeleted: true, ModifiedDate: Now(), ModifiedBy:varCurrentUser.Email}
);
Here is the validation of the selected record displayed in the label box:
First(Filter(PendingEquipmentRequestsCollection, ID = PendingEquipmentGallery.Selected.ID)).ID
If I don't include
Defaults(PendingEquipmentRequestsCollection),
Nothing happens at all, but when I include it, it duplicates. Any suggestions on what I'm doing wrong?
Solved! Go to Solution.
Hi @Anonymous
- Using 'Defaults' in patch will create new record.
- If you want to edit the record then you should use record to update. (like gallery.selected).
Patch(PendingEquipmentRequestsCollection, RECORDTOUPDATE,
LookUp(PendingEquipmentRequestsCollection, ID = PendingEquipmentGallery.Selected.ID),
{IsDeleted: true, ModifiedDate: Now(), ModifiedBy:varCurrentUser.Email}
);
Please accept this solution if it`s fulfill yor requirement.
Hi @Anonymous
- Using 'Defaults' in patch will create new record.
- If you want to edit the record then you should use record to update. (like gallery.selected).
Patch(PendingEquipmentRequestsCollection, RECORDTOUPDATE,
LookUp(PendingEquipmentRequestsCollection, ID = PendingEquipmentGallery.Selected.ID),
{IsDeleted: true, ModifiedDate: Now(), ModifiedBy:varCurrentUser.Email}
);
Please accept this solution if it`s fulfill yor requirement.
This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.
Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.
User | Count |
---|---|
200 | |
71 | |
50 | |
46 | |
20 |
User | Count |
---|---|
256 | |
120 | |
84 | |
79 | |
69 |