Sharing assessment for FormulaShare rules happens in several ways:
- When the regular scheduled job runs
- When a Targeted Calculation Job runs (available in Enterprise and Unlimited only)
- When recalculation is requested from the FormulaShare Rules list
- Immediately as records are created or updated (if triggers are set up for the object)
When a regular scheduled batch runs, when a Targeted Calculation Job runs or when recalculation is requested from the FormulaShare Rules list, every record in the scope of the job is checked to determine whether sharing is set up in line with the current rules. This will identify any changes which could affect sharing, which is why it's important to regularly assess records where sharing changes might be needed.
Real time processing
Considerations around when and how immediate processing happens are a little more subtle...
Essentially, FormulaShare will check for everything it can given the Salesforce limitations of calling in the trigger context. The last thing we want is for FormulaShare to stop your update because it's tried to query for millions of records in a trigger!
The changes picked up this way should cover many of the scenarios you might expect during normal day to day usage, but it's worth being aware that some sharing won't apply until the next scheduled job runs. This is a bit different depending on the type of rule used, so we've explained this in detail in the sections below: