We have many CampaignMember records in our local database copy that are no longer in Salesforce but that show IsDeleted='false'. If we do a select from CampaignMember_QueryAll using their Ids, they are not returned, so they are not in the recycle bin.
We run RefreshIAD six days/week and ReplicateIAD monthly. (The object is too big to replicate nightly--approximately 10 million records and many custom fields.)
So it appears that the RefreshIAD misses some deletes? Could these be hard deletes? I was thinking that RefreshIAD picked up both hard and soft deletes, or is that only ReplicateIAD?
Thanks
Help get this topic noticed by sharing it on
Twitter,
Facebook, or email.


-
-
-
-
-
It is possible for the recycle bin to overflow and salesforce not be able to report soft deletes. But SF_ReplicateIAD has options to detect and mark them anyway.
I would suggest that you upgrade to the latest version of DBAmp and take advantage of the new pkchunk option of SF_Replicate. That will allow you to replicateIAD much quicker than you can now.
Then you could run sf_ReplicateIAD every night. -
-
We are currently replicating about 20 tables with a total volume of around 50 million records.
The version we have now does the pkchunk for ReplicateIAD. For example, one run is:
EXEC SF_ReplicateIAD 'SALESFORCE', 'Campaign', 'pkchunk,batchsize(25000)'
But it takes many hours for us to do a full replicate. About 10 hours total, which is not workable to do nightly because we can't start until after midnight and still need a few hours to run ETL to our Data Warehouse.
Note that we have roundCorner customization as well as many custom objects and fields that make the tables/objects very wide. Also SQL Server is running in an availability group, so the logging is adding overhead as well. -
-
So we are doing two pulls from Salesforce, one for our Production data warehouse that is doing Refresh nightly with monthly Replicate. And the other for our QA/Dev system that does RefreshIAD nightly with monthly ReplicateIAD. The Prod refreshes (without IAD) do seem to detect deletes and remove them from the local copy, while the QA refreshes with IAD don't always seem to detect the deletes and so the local copy is out of sync until replicateIAD. And even then there seem to be some lingering records that should be flagged as Deleted but aren't. Does that make sense?
-
-
Let's take this conversation to an email. Please reach out to support@forceamp.com
For the record, you should be replicating at least once a week because of formula field drift (described in the DBAmp doc). 10 hours is too long for 50 million rows. I think there may be some issues with your options (for example, why use a batchsize of 25,000 when pkchunk support 250,000 ?)
My guess is that sf_refreshIAD is missing deletes because they never appear in the salesforce GetDeleted api call (which is how we see the deletes).
Email me, we'll setup a web meeting and take a closer look. -
-
-