Force Etag Update Functionality
This function fixes the etag concurrency problem regarding the OData interface of Business Central when the page isn't developed correctly.
For customers who upgrade their installations, the Enable Force Etag Update toggle will be enabled by default, but for new installation it will be disabled. It can be changed in the Mobile Solution Settings page in COSMO Mobile Solution.
Problem
The response from the OData interface contains a field called "odata.etag", which is a calculated field that contains information about the webservice page, as well as fields on the page.
The problem occurs when the page contains fields, in which data is held in global variables or external flowfields (these are part of another table, not the source table of the page).
Solution
Most of the time these field values are calculated in the OnAfterGetRecord
, but after an update or insert, the field values can be changed so they have to be updated in the OnModifyRecord
and OnInsertRecord
triggers as well.
If the standard pages are extended, then the OnCalculateFlowfieldsAndGlobals
event can be used to update the new fields. On a custom developed page, you should implement the recalculation of these fields in the above mentioned triggers and then the force etag update can be disabled.
Exception
Business Central 19 has an etag calculation method that cannot be fixed by this, so this setting will be enabled even on a new installation!
Warning
When the force etag update is enabled some functions won't work properly, like a show message and refresh data conditional action at the same time. This is why it's recommended to turn it off in Business Central 20 or newer environments.
Feedback
Submit feedback for this page .