Data Receive Criteria property

Official Content
This documentation is valid for:
Sets the synchronization mechanism for the Offline Native Mobile applications generated by the Main Object. This impacts the code generation and runtime behavior of the app.

Values

After Elapsed Time The synchronization programs are executed every time the elapsed time (in seconds) since the last synchronization is greater than or equal to the value set in the Minimum Time Between Receives property. Note that if the application launches for the first time, the synchronization programs are also executed.
Manual You are in charge of calling the synchronization programs. GeneXus generates the synchronization programs but they are not executed by the application itself. The Synchronization.Receive method has to be invoked.
Never You are in charge of coding the synchronization programs if necessary. GeneXus does not generate the synchronization programs.
On Application Launch The synchronization programs are executed every time the application launches and the elapsed time (in seconds) since the last synchronization is greater than or equal to the value set in the Minimum Time Between Receives property. This is the default value.

Scope

Objects: Offline Database
Generators: Android, Apple, Java, .NET, .NET Core

Description

What if the property value is set to On Application Launch or After Elapsed Time

The application is going to be in charge of receiving the synchronization data automatically, which means that the application calls the synchronization programs by itself. 

Although the application executes synchronization programs by itself, the synchronization programs can be called at any time using the Synchronization API

Note: It is not possible to execute a Receive when there are events pending to be sent to the server. So, when the Receive is automatically executed, and the Send Changes property value is set to When connected, a Send will be automatically executed before the Receive takes place. Otherwise, the Receive will return an error indicating that it has pending events.

What if the property value is set to Manual?

The synchronization programs are not called automatically. You are in charge of the receiving part of the synchronization. You can decide when to call the synchronization programs using the Synchronization.Receive method. Note that this method calls the synchronization programs generated by GeneXus.

What if the property value is set to Never?

GeneXus will not generate synchronization programs. In some scenarios, you may want to create services to manually receive the data from the server. For more information, please refer to Coding your Data Synchronization programs.

What if the Application is running in the background and 'After elapsed time' is set?

In Android, the synchronization programs are executed as described after the elapsed time; in Apple, they are not. In that case, in Apple, they will be executed the next time the application is launched.

What if the Application is closed?

All synchronization activity is suspended when the application is closed.

Note: 'Never' value is available as of GeneXus X Evolution 3 Upgrade 2.

How to apply changes

To apply the corresponding changes when the property value is configured, Run the main object.

Availability

This property is available since GeneXus X Evolution 3.

See Also

Offline Database object
Minimum Time Between Receives property
Automatic Offline Data Synchronization
Synchronization API
HowTo: Using the Synchronization API
The Data Synchronization Problem
Offline Native Mobile applications
Synchronization.Receive method