List Builder Detail View PropertiesSynchronization policy


Defines settings for Synchronizing in-memory data in the UX Component with data stored on the Server, including when modified data should be uploaded (synchronized) as well as when to check for and download new and modified records. The policy can be set to trigger when a record is saved or when the List is explicitly synched using the "Synchronize" button. Synchronization policy is only available for Lists based on a SQL Data Source.


The Synchronization policy property lets you select how you want to perform CRUD operations, like 'Save' and 'Synchronize' in your List control.

For example, it is easy to add 'Save' and 'Synchronize' buttons to a List control with a Detail View. In this case the 'Save' button adds the edits made in the Detail View to the List control. The 'Synchronize' button then pushes the changes in the List Control to the Server. Using Synchronization policy you can make this one step. When you click 'Save' the edits in the Detail View will automatically be added to the List control AND pushed to the server, all in one go.

There are two types of synchronization: Client-to-server and Server-to-client. Client-to-sever synchronization is the process by which local edits are pushed back to the server and stored in the remote system of record. Sever-to-client synchronization is the process by which edits made by other users which have been uploaded to the remote system of record and downloaded and stored locally in the application.

Synchronization policy is only available if the List has a SQL Data Source.

Automatically Performing Client-to-server Synchronization Whenever Edits are Saved

The List can be configured to automatically upload local changes when they are saved. If a connection is available, local changes will be automatically uploaded if the Perform client-to-server synchronization whenever user saves edits to a row in a List option is checked. Once enabled, the user will not need to explicitly click a second button to upload their changes.

If the device is offline or automatic client-to-server synchronization is not enabled, the modified records will be rendered with row indicators in the List which indicate how a record was modified (added, edited, or deleted.) These changes will need to be synchronized once a connection is available (typically by using a 'Synchronize' button.)

Automatically Performing Server-to-client Synchronization when Client-to-sever Synchronization Occurs

Data on the server can be automatically synchronized when a client-to-server synchronization is performed by checking the Perform a server-to-client synchronization whenever a client-to-server synchronization is performed option.

Server-to-client synchronization can be time-consuming. Consider carefully if server-to-client synchronization is needed in an application every time client-to-server synchronization occurs. If you have enabled Perform client-to-server synchronization whenever user saves edits to a row in a List, you will be performing a lot of server-to-client synchronizations which can place heavy load on your server.

If you do not enable Perform a server-to-client synchronization whenever a client-to-server synchronization is performed, a server-to-client synchronization can be performed at any time by calling the {dialog.object}.refreshListData() method. For example:

{dialog.object}.refreshListData('LIST1', {mode: 'incremental'});

See {dialog.object}.refreshListData() for more information about this method.


Batch Data Synchronization

In a disconnected application, a user may make a large number of edits before they reestablish a connection with the server. When changes are synchronized with the server, the application waits for a response from the server. Synchronizing large amounts of data can take a long time on the server, and the application may time out while waiting for a response. Sending data to the server in batches helps prevent the application from timing out while waiting for synchronization to complete.

Download Component


List with a SQL Data Source Only

See Also