Expressions

Last modified: September 6, 2024

Introduction

Expressions change a value based on a function or combination of functions.

Named items (for example, objects, lists, or variables) can be called in an expression by inserting the name of the item and adding a dollar sign (for example, $customer could refer to an object named customer). Expressions can also include Mendix system items which contain information about the current user session. See System Items, below.

Attributes and associations of objects are accessed using a slash (for example, the Name attribute of the customer object is referred to as $customer/Name, and the CRM.Customer_Order association of the customer object is referred to as $customer/CRM.Customer_Order).

Attributes of associated objects can be accessed using multiple slashes (for example, the Number attribute of a single associated CRM.Order is referred to as $customer/CRM.Customer_Order/CRM.Order/Number).

You can combine functions in an expression. In this case, you can use brackets to determine the priority and associativity of calculations. For example, the SellingPrice is being calculated based on the default Price and Discount attributes:

$CurrentPrice/Price - (($CurrentPrice/Price **div** 100) * $OrderLine/Discount)

Arithmetic functions (subtraction, dividing, and multiplying) are being combined here.

Examples

For example, you have an object called package with two attributes: weight (decimal) and shippingCosts (decimal). If the weight of a package is less than one kilogram, there are no shipping costs. Otherwise, the shipping costs are €5.00. The expression for changing the shippingCosts attribute is:

if $package/weight < 1.00 then 0.00 else 5.00

Evaluating the expression:

$emptyObject/attribute != $validObject/attribute or $emptyObject = empty

will always return false, as long as emptyObject is empty. The second part of the statement never gets evaluated.

To have both checks evaluated, the order of statements needs to be reversed:

$emptyObject = empty or $emptyObject/attribute != $validObject/attribute

This way the first statement gets evaluated.

Regular Expressions

Regular Expression resource documents cannot be used in expressions. However, the format of regular expressions, sub-expressions, and quantifiers used in regular expression strings is the same as the ones described in the Expression section of Regular Expressions.

System Items

Mendix provides you with a number of system items which describe the current user’s session. You can use these in the same way as any other named item.

$currentUser

This is an object of type System.User which contains the attributes for the currently signed-in user.

$currentSession

This is an object of type System.Session which contains the attributes for the current user session.

Unary Expressions

Arithmetic Expressions

Relational Expressions

Special Checks

Boolean Expressions

If Expressions

  • if – performs a conditional action

Mathematical Function Calls

  • max – the maximum of a list of numbers
  • min – the minimum of a list of numbers
  • round – the rounding of a floating-point number, optionally to a specified precision
  • random – random number generation
  • floor – the rounding of a floating-point number down
  • ceil – the rounding of a floating-point number up
  • pow – the exponentiation
  • abs – the absolute value
  • sqrt – the square root

String Function Calls

  • toLowerCase – converts the string to lower-case
  • toUpperCase – converts the string to upper-case
  • substring – gets a part of a string
  • find – gets a sub-string position
  • findLast – gets the last sub-string position
  • contains – contains the sub-string
  • startsWith – determines whether a string starts with the specified sub-string
  • endsWith – determines whether a string ends with the specified sub-string
  • trim – removes the leading and trailing whitespace
  • isMatch – matches a regular expression
  • replaceAll – replaces the occurrences of a sub-string
  • replaceFirst – replaces the first occurrence of a sub-string
  • String concatenation ( + ) – concatenates strings
  • urlEncode – converts a string to be used in a URL
  • urlDecode – converts a string back from a URL

Date Creation

  • dateTime – creating a date value using the server’s calendar
  • dateTimeUTC – creating a date value using the UTC calendar

Begin-of Date Function Calls

  • BeginOfDay – calculates the beginning of the day compared to the initial date
  • BeginOfWeek – calculates the beginning of the week compared to the initial date
  • BeginOfMonth – calculates the beginning of the month compared to the initial date
  • BeginOfYear – calculates the beginning of the year compared to the initial date

End-of Date Function Calls

  • EndOfDay – calculates the end of the day compared to the initial date
  • EndOfWeek – calculates the end of the week compared to the initial date
  • EndOfMonth – calculates the end of the month compared to the initial date
  • EndOfYear – calculates the end of the year compared to the initial date

Between Date Function Calls

Add Date Function Calls

Subtract Date Function Calls

Trim to Date

To String

See To String for details.

Length

See Length for details.

Parse Integer

See Parse Integer for details.

Parse and Format Decimal Function Calls

Parse and Format Date Function Calls

Enumerations in Expressions

  • getCaption – gets the caption of an enumeration value in current language
  • getKey – gets the technical name of an enumeration value