UTIL_FormulaContext
Class · Group: Utilities
global inherited sharing class UTIL_FormulaContextContainer for pre-built formula evaluation context classes for standard Salesforce objects.
This class provides typed context implementations for Salesforce's FormulaEval namespace, enabling dynamic formula evaluation against standard object records. These contexts can be used in any scenario requiring formula evaluation, including but not limited to:
- **Trigger Action Framework** - Entry criteria formulas on `TriggerAction__mdt`
- **Custom Business Rules** - Configurable filtering or validation logic
- **Flow Extensions** - Dynamic formula evaluation in Apex-backed Flow actions
- **Batch Processing** - Record filtering based on formula criteria
Supported Objects: Account, Contact, Lead, Opportunity, Case, Campaign, Task, Event, User, Foobar__c (test object)
Formula Variable Names:
- `oldRecord` - Record state BEFORE an operation (null when no prior state exists)
- `newRecord` - Record state AFTER an operation (null when record is being removed)
Inner classes are GLOBAL because Salesforce FormulaEval.FormulaInstance.evaluate() requires runtime access to context properties. The global visibility ensures cross-namespace access when the managed package evaluates formulas in subscriber orgs.
Why global visibility is required:
- Member variables must be accessible by FormulaEval at runtime
- For managed packages, `global` guarantees visibility across all scenarios
- Subscriber org context classes must also use `global` for the same reason
Since: 1.0
Example:
// Direct usage with Formula.builder()
FormulaEval.FormulaInstance formula = Formula.builder()
.withFormula('newRecord.AnnualRevenue > 1000000 && newRecord.Industry = "Technology"')
.withReturnType(FormulaEval.FormulaReturnType.BOOLEAN)
.withType(UTIL_FormulaContext.AccountContext.class)
.build();
UTIL_FormulaContext.AccountContext context = new UTIL_FormulaContext.AccountContext();
context.setContext(null, account);
Boolean matches = (Boolean)formula.evaluate(context);See Also: UTIL_FormulaFilter, UTIL_FormulaFilter.INT_SObjectFormulaEvaluationContext, FormulaEval.FormulaInstance
Inner Classes
| Class | Description |
|---|---|
| AccountContext | Formula evaluation context for Account object. |
| CampaignContext | Formula evaluation context for Campaign object. |
| CaseContext | Formula evaluation context for Case object. |
| ContactContext | Formula evaluation context for Contact object. |
| EventContext | Formula evaluation context for Event object. |
| FoobarContext | Formula evaluation context for Foobar__c test object. |
| LeadContext | Formula evaluation context for Lead object. |
| OpportunityContext | Formula evaluation context for Opportunity object. |
| TaskContext | Formula evaluation context for Task object. |
| UserContext | Formula evaluation context for User object. |