No-Code Actions
Generated from
PayrollEngine.Client.Scripting— do not edit manually.
What Are Actions?
Actions are built-in operations that control case behavior — field visibility, labels, formats, default values, validation constraints, and related case values — without writing C# code. They are entered directly in the Web App or in JSON configuration, and evaluated at runtime by the scripting engine.
Actions are the No-Code layer of the Regulator role. Where actions are not sufficient, the Low-Code layer provides full C# scripting.
Syntax
An action expression is a string prefixed with ^:
^[source:]Action[(parameters)]
| Part | Description | Example |
|---|---|---|
^ |
Required prefix — marks the string as an action expression | ^ |
source: |
Optional — source field to read from ($ = case field, & = case relation, ^ = environment) |
$Salary: |
Action |
Action name in PascalCase | SetMandatory, Hide, SetFormat |
(parameters) |
Optional comma-separated arguments | ("DD.MM.YYYY"), (true) |
PascalCase required: Action names and all referenced case field names must use PascalCase without spaces. Spaces break the action parser.
Object References
Action expressions can directly reference payroll objects using ^-prefixed tokens.
Each token targets a specific object type — using the wrong token for an object is a runtime error.
| Token | Target | Context | Example |
|---|---|---|---|
^# |
Lookup value | Anytime | ^#IncomeTax(^&GrossIncome) |
^^ |
Case value | Anytime | ^^Salary * ^^EmploymentLevel |
^: |
Case field | Case change | ^:Salary.Start < PeriodStart |
^< |
Source case field | Case relation | ^<EmploymentLevel < 1.0 |
^> |
Target case field | Case relation | ^>Salary = ^<Salary * ^<EmploymentLevel |
^\| |
Runtime value | Payrun | ^\|GrossPay = ^^Salary * ^^EmploymentLevel |
^@ |
Payrun result | Payrun | ^@AnnualBonus = ^^Salary * 12 |
^$ |
Wage type value | Payrun (WageType) | ^$BaseSalary * 0.08 |
^& |
Collector value | Payrun (WageType) | ^&GrossIncome * ^#IncomeTax(^&GrossIncome) |
Lookup values support optional key, rangeValue, and field arguments:
^#LookupName(key)
^#LookupName(rangeValue)
^#LookupName(key, rangeValue)
^#LookupName(key, rangeValue, field)
Collector (^&) selectors:
| Selector | Description | Example |
|---|---|---|
| (none) | Value of the current payrun period (default) | ^&GrossIncome |
.Cycle |
Year-to-date sum across all previous payruns in the current cycle | ^&GrossIncome.Cycle |
Wage type (^$) selectors:
| Selector | Description | Example |
|---|---|---|
| (none) | Value of the current payrun period (default) | ^$BaseSalary |
.Cycle |
Year-to-date sum across all previous payruns in the current cycle | ^$BaseSalary.Cycle |
.RetroSum |
Net sum of all pending retro corrections within the current cycle | ^$BaseSalary.RetroSum |
Note: Consolidated queries combining historical and current-period values require a
periodMomentdate argument and cannot be expressed as a simple selector. Use the Low-Code API (GetCollectorCurrentConsolidatedValue,GetWageTypeCurrentConsolidatedValue) for those cases.
Function Types
Each action belongs to one or more function types. The function type determines in which scripting context the action can be used. 91 built-in actions are available across 5 function types:
| Function Type | Actions | Description |
|---|---|---|
| CaseChange | 42 | Case input: field visibility, labels, formats, validation constraints |
| CaseRelationBuild | 9 | Case relation: read and write related case field values |
| Payroll | 27 | Common actions available across all payroll scripting contexts |
| Payrun | 10 | Payrun lifecycle: runtime values, results, YTD collector totals |
| WageType | 3 | Wage type value and result calculations |