|This property indicates how data is synchronized from the server to the device in Offline Smart Devices applications.
|By Row ||Default value. Indicates that the synchronization is made row by row. There are two alternatives of this mechanism (refer to the Description section).|
|By Table ||Indicates that the synchronization is made by table.|
Since the addition of Offline Smart Devices Applications in GeneXus, we’ve had two different algorithms for synchronizing data from the server to the devices: synchronization by table and synchronization by row.
The synchronization by table algorithm is straightforward: on the server side, a hash of the table is computed and compared with the hash sent by the device. If they match, there is nothing to synchronize. If they don’t, the whole table is sent to the device and there, it replaces the previous content.
The synchronization by row algorithm requires some further explanation. Without going into much detail, if the table has changed (table hashes don’t match), the changed rows are computed (inserted, updated and deleted) and sent to the device to be processed. This is the default behavior and we'll refer to it as synchronization by hash, but there exist a second variant of the synchronization by row algorithm that uses a timestamp instead of hashes for computing the differences. We'll call this last alternative synchronization by timestamp which is defined in a per-table basis by configuring the Logically Deleted Attribute property and the Last Modified Date Time Attribute property.
Further explanation of these alternatives is discussed in Smart Devices offline synchronization granularity alternatives article.
This property applies only at design-time.
Objects: Offline Database
Platforms: Web(.Net, Java), Smart Devices(Android, IOS)