If your saved search could correctly find the 280k transactions
You could consider testing these solutions:
1. Mass Update Script with a fake field (to trigger the change
2. Custom mass update with a load/save script
In these 2 cases, make sure the fields that are changing has an impact and will show up on the UE script context.newRecord.
Otherwise, a M/R script and in the getInputData you could have the saved search, and the map stage to execute whatever you need.
If you can break the 280k based on dates, I'd break it to batches, or have a condition that makes sure the number of records that need to run decreases as part of the criterea