Every time an offline application generated with GeneXus is installed in the device, an auxiliary table called "GXPendingEvents" is created automatically in the local database.
The GXPendingEvents table will store all Business Component modifications made offline ( Inserts, Deletes, Updates ) as events in order to replicate the same changes later to the server. Each event has an attribute that represents the status of the event. The possible status values are defined by the EventStatus domain:
When at least 2 insertion events are sent and one of them has a ForeingKey to some of the other events, if that event fails (with status RejectedServer), the event with the ForeingKey fails as well, but with the status RejectedFK.
For instance, if we have a Customer-Invoice model, and we insert a Customer with one Invoice, if for some reason the event associated with the Customer is rejected by the server when replicating, the Invoice event is maked as RejectedFK.
Note: Statuses "ProcessingServer", "ConfirmedServer" and "CanceledUser" are temporary states of an event, and, in addition, every event with some of these statuses is removed from the GXPendingEvents table; which means that only events with status "Pending", "RejectedServer" or "RejectedFK" remains in the GXPendingEvents table.
The Synchronization Events API has methods that makes possible to access and manipulate the GXPendingEvents data.
This methods are:
Events with status "RejectedFK" are only supported by Apple Smart Devices (iOS) offline applications as of GeneXus X Evolution 3 Upgrade 1.