This sample code shows how to retrieve changes from a table and synchronize data with external systems by using the RetrieveEntityChanges
message with the RetrieveEntityChangesRequest and RetrieveEntityChangesResponse classes.
For more information about the feature that this sample demonstrates, see Use change tracking to synchronize data with external systems.
See How to run samples for information about how to run this sample.
The RetrieveEntityChanges
message is intended to be used in a scenario where data from an external system is synchronized and the capability to use change tracking can be used to detect and reconcile data changes.
Without a separate system required to fully replicate this scenario, this sample simulates the scenario by performing two requests. In between the requests some data is changed so that the second request will return data about what was changed over time.
In order to simulate the scenario described in What this sample does, the sample will do the following:
- Import a managed solution (ChangeTrackingSample_1_0_0_0_managed.zip) that creates a
sample_book
table that has an alternate key namedsample_bookcode
. Verify that the indexes to support the alternate key are active - 10 initial sample_book table records are created so that changes to those entities can be tracked.
- Perform initial request and cache the results, including the
DataToken
- Update the records created in Setup
- Perform a second request, this time passing the
DataVersion
with theDataToken
value retrieved from the initial request. - Show the table changes returned by the second request
Display an option to delete the managed solution imported in Setup, which removes the sample_book
table and all the data created in the sample. The deletion is optional in case you want to examine the entities and data created by the sample. You can manually delete the ChangeTrackingSample
to achieve the same result.