Web Services synchronization issues

We are using Luminate Online Web Services (SOAP) to build a local data warehouse for reporting purposes. In the user guide documentation, Blackbaud recommends using synchronization and GetIncrementalInserts, GetIncrementalUpdates and GetIncrementalDeletes methods, however there are persistent synchronization issues, that cause records to fall out of synchronization. When that happens, these "lost" records are not returned in the results by the methods mentioned above. They can still be retrieved using query that pulls record within the specific dates or with the specific ID.

Blackbaud is aware of the issue, but the only response I've ever received when reporting it, was "submit a request in Case Central to recalculate the partition, and after that the records will be available for synchronization". I tried to have the recalculation scheduled monthly, but they said it's not possible and needs to be done on "per request" basis. The desynchronization turns out to be pretty common and you don't know you are missing records until reports are not adding up and when digging deeper you realize that another desync happened and you need to submit recalculation request again. I've recently built a QC mechanism, that downloads transaction IDs and constituent IDs to separate tables using queries and alerts when there are records that exist in QC tables, but do not exist in the regular synchronization, but submitting recalculation request and rerunning the sync every time this happens seems mundane.

Has anyone else, who is using Web Services to download LO data, experienced the same issue? If so, how are you dealing with it and were you able to determine what is causing this to happen?

What is the advantage of using synchronization over query with CreationDate/ModifyDate criteria, which returns records missing from the synchronization?

Tagged: