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 to replicate the same changes later to the server. Each event has an attribute that represents the status of the event (based on EventStatus domain).
The SynchronizationEvents external object has methods that make possible to access and manipulate the GXPendingEvents data.
It does not have any.
Checks if there are any pending changes to submit to the server, or whether there was any error when sending the data to the server. Detailed information in SynchronizationEvents.HasEvents method.
Return value |
Boolean |
Parameters |
EventStatus:EventStatus |
|
|
Accesses the stored events for processing. Detailed information in SynchronizationEvents.GetEvents method.
Return value |
SynchronizationEventList |
Parameters |
EventStatus:EventStatus |
|
|
Marks as pending an events in order to try sending it again later. Detailed information in SynchronizationEvents.MarkEventAsPending method.
Return value |
None |
Parameters |
EventGUID:GUID |
|
|
Removes some registry of the GXPendingEvents table. Detailed information in SynchronizationEvents.RemoveEvent method.
Return value |
None |
Parameters |
EventGUID:GUID |
|
|
It does not have any.
Numeric based enumerated domain with the possible event status values.
Pending |
1 |
Events with this status are ready to be sent by the device to the server. Also, these events are created every time a Business Component transaction is executed. |
ProcessingServer |
2 |
This is a temporary status of an event while it is being processed on the server side. |
ConfirmedServer |
3 |
This status means that the event was successfully replicated in the server side. Because there is no need to store all confirmed events, they are removed from the GXPendingEvents table instantly. |
RejectedServer |
4 |
Events with this status could not be replicated on the server side because some error happened. From the device, it is possible to access the error code and messages by using the GetEvents method and the "EventErrors" property of the "GxSynchroEventSD". |
CanceledUser |
5 |
Means that the event was canceled by the user. |
RejectedFK |
6 |
When at least two insertion events are sent and one of them has a foreign key to some of the other events if that event fails (with status RejectedServer), the event with the foreign key 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 made 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.
Possible event actions.
INS |
Insertion |
UPD |
Modification (or update) |
DLT |
Deletion |
|
|
Event data information. It is based on LongVarChar data type.
Event error information. It is based on LongVarChar data type.
A collection of synchronization event information.
- EventId:GUID
The event identifier.
- EventTimestamp:DateTime
The event timestamp.
- EventBC:VarChar(128)
The event business component.
- EventAction:EventAction
The event action.
- EventData:EventData
The event associated data.
- EventStatus:EventStatus
The event status.
- EventErrors:EventErrors
The event associated errors.
Platforms |
Smart Devices (iOS, Android) |
This external object is available as of GeneXus X Evolution 3.