Official Content

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.

SyncrhonizationEventsexternalobject-Location_png image_201861313521_1_png


It does not have any.


HasEvents method

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

GetEvents method

Accesses the stored events for processing. Detailed information in SynchronizationEvents.GetEvents method.

Return value  SynchronizationEventList
Parameters EventStatus:EventStatus

MarkEventAsPending method

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

RemoveEvent method

Removes some registry of the GXPendingEvents table. Detailed information in SynchronizationEvents.RemoveEvent method.

Return value  None
Parameters EventGUID:GUID


It does not have any.


EventStatus domain

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.

EventAction domain

Possible event actions.

INS  Insertion
UPD  Modification (or update)
DLT Deletion

EventData domain

Event data information. It is based on LongVarChar data type.

EventError domain

Event error information. It is based on LongVarChar data type.

Structured Data Types


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.

See also

Last update: November 2023 | © GeneXus. All rights reserved. GeneXus Powered by Globant