@romankorchak2
The reason you cannot use UpdateContext and other actions in a ForAll is that ForAll is a function that creates a table. It is not a For Loop like in some development platform.
When you use the ForAll backward like you have, it will still attempt to function, but your performance will be quite horrible as you are invoking the Patch function on a datasource over and over and then performing a lookup in it as well. All will work, but the performance will be poor.
Your formula should have been this for better performance and to utilize the ForAll properly:
Patch(MySPlist,
ForAll(Filter(MySPlist,Country <> "GB") As it,
{ID: it.ID,
Country:"GB"
}
)
)
This formula produces a Table (which is what ForAll is for) and passes that to the Patch function which will then intelligently update all the records from the table provided to the datasource.
However...you might also want to consider not doing any of this and simply using the UpdateIf function. Then your formula will be:
UpdateIf(MySPlist, Country <> "GB", {Country:"GB"})
Keep in mind that all of the formula (including the formula in your last post) are all limited by the record limit of your app.
I hope this is helpful for you.