Built-in and When() functions

Four functions are part of the expression language. All other names following an at-sign are references to function rules, instances of the Rule-Utility-Function rule type. An expression can use any of these built-in functions:

Syntax Description
These functions are part of the expression language. Their names are reserved and cannot be overridden. These functions may only be invoked using the preferred (‘@’) syntax.  
@if( boolean expression, result1, result2)
Evaluates the condition in parameter one and then, if true, evaluates and returns parameter two, otherwise evaluates and returns parameter three.

Equivalent to the Java ternary operator “?:.” Only the one appropriate result parameter is evaluated.

@and( e1, e2, ...)
Logical AND operation of the (arbitrary number of) parameters (Evaluated left-to-right, stopping when the result is known)
@or( e1, e2, ...)
Logical OR operation of the (arbitrary number of) parameters (Evaluated left-to-right, stopping when the result is known)
@java( code)
This function is deprecated. Use a utility function or other product feature instead. The single parameter is treated as Java code and inserted into the translated Java stream without examination or modification.
General purpose  
@when(name)
Evaluates a when condition rule in the context of the primary page of the rule in which the expression appears. The parameter can be an expression that evaluates to a text value.
@when(name, pagename)
Evaluates the specified when condition rule using the supplied ClipboardPage PublicAPI object (not a page name) as the primary page for evaluation. Either parameter can be an expression that evaluates to the correct data type.
Note: The primary page for evaluation is supplied as a ClipboardPage object, not a page name, so that embedded pages (or pages whose name is not known) can be evaluated.

You can use a Value List, Value Group, or Page Group property as an argument to the @SUM(), @MIN(), @MAX() and @AVERAGE().