If you would like to upgrade to a newer long-term support version of Studio Pro, see Moving from Mendix Studio Pro 8 to 9.

Expressions

Last modified: August 27, 2024

Introduction

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

Named items in the microflow (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).

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).

Starting from Studio Pro 8.10.0, 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.

Example

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`

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.

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

String Function Calls

  • toUpperCase – converts the string to upper-case
  • toLowerCase – converts the string to lower-case
  • length – the string length
  • 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

Between Date Function Calls

Add Date Function Calls

Trim to Date

To String

See To String 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