Synchronization collisions can occur when the same record is created, updated or deleted in both the Luminate Online and client system within the same time window. For example, the following scenario may occur:
When a collision like this occurs, the middleware application needs to report it for manual resolution. A collision resolution tool would ideally show the two related records (one from the client system and one from Luminate Online) side by side, and allow a staff person to choose which fields to retain from each one. Luminate Online Web Services provides a mechanism for forcing an update to the Luminate Online database (overriding collision detection) once the manual resolution process is complete.
The following scenarios will result in a record-level collision response from the server:
Insert duplicate collision
In this scenario, the web services client attempts to insert a record that appears to be a duplicate of an existing record in Luminate Online. The server examines several field values to detect a potential duplicate, and reports a different error code for each one:
Field | Error Code | Scenario |
---|---|---|
MEMBER_KEY | DUPLICATE_MEMBER_KEY | Client attempts to insert a constituent record with a member key that is associated with an existing constituent record. |
DUPLICATE_EMAIL | Client attempts to insert a constituent record with an email that is associated with an existing constituent record. | |
USER_NAME | DUPLICATE_USER_NAME | Client attempts to insert a constituent record with an email that is associated with an existing constituent record. |
A collision on CONS_ID is not possible on insert because the server automatically generates a new CONS_ID for each inserted record. The server simply ignores any CONS_ID that a client may include with records submitted for insertion.
A collision may occur with a constituent record that is in the "pending approval" state.
The time window for the active synchronization does not affect insert collisions, since member key, email and user name must all be unique across the entire site.
A conflict on insert is not possible if a deleted record exists with the same member key, email or user name. Uniqueness is only checked for non-removed constituents.
The next general class of collisions is when both a client and the server or some other client update or remove (mark as deleted) a record within the same synchronization period. Consider this scenario:
Several permutations of this scenario are possible:
In any of these cases, Luminate Online Web Services will refuse to modify the record because it would potentially overwrite the changes of another agent.
A web services client can force an update by setting the Force parameter to true in an update request.