Expressions
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 with a dollar sign followed by the name of the item (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.00false. The object's attribute cannot be accessed and the expression cannot be evaluated. This can be crucial when evaluating multiple statements within an expression. See the examples below for more information.
      Evaluating the expression:
$emptyObject/attribute != $validObject/attribute or $emptyObject = emptywill 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/attributeThis 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
- Less than ( <)
- Greater than ( >)
- Less than or equal to ( <=)
- Greater than or equal to ( >=)
- Equal to ( =)
- Not equal to ( !=)
Special Checks
- Checking for an empty object
- Checking for an empty object member
- Checking if an object is new (isNew)
- Checking if an object is synced (isSynced)
- Checking if a synchronization is running (isSyncing)
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
- millisecondsBetween– the milliseconds between two dates
- secondsBetween– the seconds between two dates
- minutesBetween– the minutes between two dates
- hoursBetween– the hours between two dates
- daysBetween– the days between two dates
- weeksBetween– the weeks between two dates
- calendarMonthsBetween- the months between two dates
- calendarYearsBetween- the years between two dates
Add Date Function Calls
- addMilliseconds– adds milliseconds to a date
- addSeconds– adds seconds to a date
- addMinutes– adds minutes to a date
- addHours– adds hours to a date
- addDays– adds days to a date
- addDaysUTC– adds days to a date using the UTC calendar
- addWeeks– adds weeks to a date
- addWeeksUTC– adds weeks to a date using the UTC calendar
- addMonths– adds months to a date
- addMonthsUTC– adds months to a date using the UTC calendar
- addQuarters– adds quarters to a date
- addQuartersUTC– adds quarters to a date using the UTC calendar
- addYears– adds years to a date
- addYearsUTC– adds years to a date using the UTC calendar
Subtract Date Function Calls
- subtractMilliseconds– subtracts milliseconds from a date
- subtractSeconds– subtracts seconds from a date
- subtractMinutes– subtracts minutes from a date
- subtractHours– subtracts hours from a date
- subtractDays– subtracts days from a date
- subtractDaysUTC– subtracts days from a date using the UTC calendar
- subtractWeeks– subtracts weeks from a date
- subtractWeeksUTC– subtracts weeks from a date using the UTC calendar
- subtractMonths– subtracts months from a date
- subtractMonthsUTC– subtracts months from a date using the UTC calendar
- subtractQuarters– subtracts quarters from a date
- subtractQuartersUTC– subtracts quarters from a date using the UTC calendar
- subtractYears– subtracts years from a date
- subtractYearsUTC– subtracts years from a date using the UTC calendar
Trim to Date
- trimToSeconds– trims to seconds
- trimToMinutes– trims to minutes
- trimToHours– trims to hours
- trimToHoursUTC– trims to hours using the UTC calendar
- trimToDays– trims to days
- trimToDaysUTC– trims to days using the UTC calendar
- trimToMonths– trims to months
- trimToMonthsUTC– trims to months using the UTC calendar
- trimToYears– trims to years
- trimToYearsUTC– trims to years using the UTC calendar
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
- parseDecimal– converts a string to a decimal
- formatDecimal– converts a decimal to a string
Parse and Format Date Function Calls
- parseDateTime[UTC]– converts a string to a date value
- formatDateTime[UTC]– converts a date value to a string
- formatTime[UTC]– converts the time part of a date value to a string
- formatDate[UTC]– converts the date part of a date value to a string
- dateTimeToEpoch– converts a date to a long
- epochToDateTime– converts a long to a date
Enumerations in Expressions
- getCaption– gets the caption of an enumeration value in current language
- getKey– gets the technical name of an enumeration value