When records are being assessed for FormulaShare sharing changes, this will be done in one of two ways:
- Transaction Safe means that rules assessed are only those which can be calculated without adding significantly to the processing overhead of a transaction. Transaction Safe assessment can be safely mixed with other automation on the object, and is the mode of operation for:
- Full Assessment means all rules on the object will be assessed. This is safe for use in batch operations, and from synchronous apex and flow operations where records in objects involved in sharing have very low risk of data skew. This is the mode of operation for:
- Full Recalculation Batch
- Targeted Calculation Jobs
- Recalculations from the FormulaShare Rules List
- Assessment which is Requested via Flow or Apex
Because transaction safe operations don't include assessment of every type of rule, and because certain changes might not be picked up in triggers or record triggered flows (e.g. changes to parent records referenced in formula fields) it's important to use the full recalculation batch or targeted calculation jobs to make sure all sharing changes are applied.
Which Rules are Applied in Transaction Safe Operations?
For standard rules (those where the sharing field is on the shared object itself), this is quite simple - they're always applied to records in the scope of record triggered flows or apex triggers. More detail and considerations around formula fields are outlined in the standard rules section.
For cross-object rules, whether they're applied in transaction safe operations depends on the structure of the rule, which object is being updated and its relationship with the shared object. Full information is outlined in the cross-object rules section.