RollUp fields are a great new feature, allowing for aggregation of data from many child records to be summed up to the parent record.
The RollUp field are being updated on an asynchronous process running every hour.
The updating of the RollUp field are done in the background and are NOT updating the "Modified On" date on the Parent record. Even though the value on the parent record are being updated and are visible in views and on the actual record.
This have big influence if you are running external integration based on the "Modified On" date.
Ex. Scribe replication service from CRM Online to local SQL database.
Since the "Modified On" are not changed after updating the RollUp field, any integration selecting records changed since last run, will NOT be selected for integration.
An Opportunity is modified at 2:05PM and therefore selected for replication to local SQL database for reporting purpose at 2:15PM.
At 2:30PM a child Record is created and related to a Parent Opportunity. The Opportunity will NOT get a new "Modified On" date since no data are changed on the actual Opportunity. The Opportunity "Modified On" date is still 2:05PM.
At 3:00PM the system asynchronous process is running and updating the RollUp field on the Opportunity summing up values from all Child records.
Since the Opportunity "Modified On" date is still 2:05PM, the Opportunity is NOT selected again for replication to local SQL database for reporting purpose at 3:15PM. No changes seem to have been made on the Opportunity!
The system have a hidden field to track when the RollUp field have last been updated. Whenever a RollUp field are being updated by the system, this field are also being update with the date for the RollUp update.
This field is only available on the form and from the API. Can't be found under fields on the entity.
Since no Workflow can trigger on the change of the RollUp field being updated, a Scribe job have to do an update on the Opportunity, when RollUp field are being updated.
Set up a Scribe job to select all Opportunities where the RullUp_date field is greater than last run time for this scribe job.
Update all found Opportunities with any small change in order to change the "Modified On" date. (Could be a new data field or othe not used field).
The Opportunity is now updated and will be selected next time any integration is running selecting Opportunities changed since last run.