As mentioned in the Offline Architecture document, the offline applications need a local Database in the device. The Offline Database object is shown in GeneXus as a child node of the offline Main Object (with connectivity support offline), and this object is used to define when and how to synchronize the local database with the server's database.
This object appears only after building an offline main object for the first time, and it is automatically set in Offline Database property for the Mobile main object.
This object is a very simple object that contains the following parts:
When GeneXus creates the Offline Database object also creates automatically some programs to create the local Database in the device once the application is installed. For more information, please refer to the Offline Database reorganization document.
As this object will be in charge of creating a local database in the device, it is necessary to the object to know which tables are going to be created in the local database. GeneXus has the intelligence to make that selection automatically, and it is resolved and explained in the Offline Database Object Table selection document.
As mentioned before, this object has Events, Conditions, and Properties to handle the synchronization. Because synchronization is about receiving and sending data between the application and the web server, it is possible to change some setting about how the application will receive and send data.
The device will receive a subset of the selected tables from the webserver database, and it is possible to filter what of that data is needed in the local database. To do so, it is available the Conditions and Events sections in the Offline Database object.
There are also some properties that may be useful to configure the received settings, those properties are:
As mentioned in the Data Synchronization document, the device will internally save all the events in the local database in order to send all the changes to the server when the device is again connected. It is possible to manage when to send those changes, and the Send Changes property allows setting that.
The navigation report of the Offline Database shows what offline tables are populated with which conditions. To understand more about this check out the Offline Database Object Navigation Report document.
This feature is available since GeneXus X Evolution 3.
Offline Database Object events
Offline Database Object conditions
Offline Database Object properties