---
title: New Expression Features
slug: VRlG-new-expression-features
createdAt: 2025-06-11T20:26:19.223Z
---

The following are the new features and changes to Activate Expressions.

## Expression Escaping

V7 and older allowed expressions to be written in double quotes (") in expressions. For example, 

\=isnull(=/Task/ParameterName)    - this expression is ok because the expression in the function does not contain any special characters

\=isnull("=/Task/Web.Parameter")    - this expression requires quotes because the expression contains special characters like a DOT (.) character.

V8 also allows you to quote expressions with a single quote (') character.

Visible="=isnull('=/Task/Web.Parameter')"    - this expression is also valid. This is useful if the surrounding value is double quoted ".

V8 also allows you to surround expressions with curly brackets \{}.

Visible="=isnull(\{=/Task/Web.Parameter})"    - this expression is also valid. This is useful if the surrounding value is double quoted ".

## => Evaluator

A new shorthand expression for eval.

\=eval(1 \* 7)    - is Valid in V7.

\=>1 \* 7           - is now valid in V8

## $= Expressions

There are times where you want to have an expression that contains string expansion but you don't want to execute the main expression and return the resulting expression. For example:-

- $=isnull('=//Drafts/6351/RelatedUsers') would return $=isnull('=//Job/123456/RelatedUsers') 
- $=eval(%=//Parent/CustomTypes/Path%) would return $=eval(=//Roles/Custom User Types/Employee) if the CustomTypes parameter of the current parent pointed at //Roles/Custom User Types

    Use \ to escape = for expressions that should not be expanded. For example:-

        "$=filter('=//Jobs/a8e02bd3-ee19-4809-9b40-9201fbccbf1f/RelatedUsers', '@=>\{%\\=/Guid%} != \\'%\\=//CurrentUser/Guid%\\'')"

## Changed or Updated

##  Functions

| Function                       | Description                                                                                                                                                                                                                         |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| isdefined                      | Added overload to check if value is isdefined it is the opposite of isnull =isdefined('=/Myparameter")        ==         =not(=isnull('=/Myparameter))                                                                              |
| isnumber(s)                    | New Function to check if the argument is a number =isnumber("1")  == true =isnumber("s") == false                                                                                                                                   |
| toint(v, defaultValue)         | Added ability to have a defaultValue if v cannot be converted to a number, previously returned null                                                                                                                                 |
| checkaccess                    | Added new options checkAccess(object, rights) \| checkAccess(rights)                                                                                                                                                                |
| call                           | Added call(obj, "method", args) This can be used to call a function on a builtin object.                                                                                                                                            |
| or                             | Can have any number of arguments and returns true if one is true For example: or(=/Arg1, =/Arg2, =/Arg3)                                                                                                                            |
| trim(s, \[trim,\[trim]])       | Trim the start and end of the string with any arguments trim(s) - trim all white space trim(s, '-') - trim any '-' from the start or the end trim(s, 'DL') - trim 'DL' from the start or the end  Note: This trim is case sensitive |
| trimstart(s, \[trim, \[trim]]) | Trim the start of the string with any arguments trimstart(s) - trim all white space from the start trimstart(s, '-') - trim any '-' from the start trimstart(s, 'DL') - trim 'DL' from the start Note: This trim is case sensitive  |
| trimend(s, \[trim, \[trim]])   | Trim the end of the string with any arguments trimstart(s) - trim all white space from the end trimstart(s, '-') - trim any '-' from the end trimstart(s, 'DL') - trim 'DL' from the end Note: This trim is case sensitive          |

