It is an LWC that allows user to created formulas just like you do with standard formula builder when you create a formula field. User is able to insert field from context object or allowed context types like (User, Profile or Organization), Function (AND, OR, CONTAINS, etc...) and operator (+, -, ==, etc...) from predetermined picklist.
Allows to specify formula value this component will be initialized with.
Standard or custom object API name, determines set of fields which user will be able to choose from 'Insert Field' picklist
Comma separated list of Object API Names, which will be used as context variables and user will also be able to choose those objects fields. Usually it is User, Profile or Organization.
Apex class that is responsible for actually evaluation a formula on run time based on passed in formula and context information. It supports context objects mentioned above and custom context variables, where developer is able to specify some custom constants.
$Record - put context record.Id here if your formula should take data from real record on run time anyCustomLiteral - attribute name and value, which can later be used while evaluating a formula.
Account acc = new Account(Name = 'Test acc', NumberOfEmployees = 11); insert acc; List<ContextWrapper> context = new List<ContextWrapper>(); context.add(new ContextWrapper('$Record', acc.Id)); context.add(new ContextWrapper('contextVariableOne', '30')); context.add(new ContextWrapper('contextVariableTwo', '45'));
String stringContext = JSON.serialize(context); String result = FormulaEvaluator.parseFormula('$Record.NumberOfEmployees + contextVariableOne + contextVariableTwo', stringContext);
After evaluating above formula with its contexts it will return 11 + 30 + 45 = 86 as a result
Currently formula evaluator supports following functions, but this list can be extended by a developer:
'AND', 'OR', 'NOT', 'XOR', 'IF', 'CASE', 'LEN', 'SUBSTRING', 'LEFT', 'RIGHT', 'ISBLANK', 'ISPICKVAL', 'CONVERTID', 'ABS', 'ROUND', 'CEILING', 'FLOOR', 'SQRT', 'ACOS', 'ASIN', 'ATAN', 'COS', 'SIN', 'TAN', 'COSH', 'SINH', 'TANH', 'EXP', 'LOG', 'LOG10', 'RINT', 'SIGNUM', 'INTEGER', 'POW', 'MAX', 'MIN', 'MOD', 'TEXT', 'DATETIME', 'DECIMAL', 'BOOLEAN', 'DATE', 'DAY', 'MONTH', 'YEAR', 'HOURS', 'MINUTES', 'SECONDS', 'ADDDAYS', 'ADDMONTHS', 'ADDYEARS', 'ADDHOURS', 'ADDMINUTES', 'ADDSECONDS', 'CONTAINS', 'FIND', 'LOWER', 'UPPER' , 'MID', 'SUBSTITUTE', 'TRIM', 'VALUE', 'CONCATENATE'
Currently formula evaluator supports following operators, but this list can be extended by a developer:
'+', '-', '/', '*', '==', '!=', '>', '<', '>=', '<=', '<>'
It is an LWC component that allows user to create expressions by selecting fields, operators and fieldValues. It acts like standard expression builder.
At background it generates formula string that is later being processed by formula builder.
All Conditions Are Met - result of evaluating this expression will return 'true' only if ALL expressions return true Any Condition Is Met - result of evaluating this expression will return 'true' only if ANY expressions return true
Used to initialize a component with predetermined value or stores formula for current component state
Label for button to add new lines in expression builder
API name of context object, it determines fields user will be able to choose in "Field" picklist
Comma separated list of Object API Names, which will be used as context variables and user will also be able to choose those objects fields. Usually it is User, Profile or Organization.