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
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
- Less than ( < )
- Greater than ( > )
- Less than or equal to ( <= )
- Greater than or equal to ( >= )
- Is equal to ( = )
- Is not equal to ( != )
Special Checks
- Checking for an empty object
- Checking for an empty object member
isNew
– checks whether an object is new
Boolean Expressions
If Expressions
- if – performs a conditional action
Mathematical Function Calls
max
– the maximum of a list of numbersmin
– the minimum of a list of numbersround
– the rounding of a floating-point number, optionally to a specified precisionrandom
– random number generationfloor
– the rounding of a floating-point number downceil
– the rounding of a floating-point number uppow
– the exponentiationabs
– the absolute value
String Function Calls
toUpperCase
– converts the string to upper-casetoLowerCase
– converts the string to lower-caselength
– the string lengthsubstring
– gets a part of a stringfind
– gets a sub-string positionfindLast
– gets the last sub-string positioncontains
– contains the sub-stringstartsWith
– determines whether a string starts with the specified sub-stringendsWith
– determines whether a string ends with the specified sub-stringtrim
– removes the leading and trailing whitespaceisMatch
– matches a regular expressionreplaceAll
– replaces the occurrences of a sub-stringreplaceFirst
– replaces the first occurrence of a sub-stringString concatenation ( + )
– concatenates stringsurlEncode
– converts a string to be used in a URLurlDecode
– converts a string back from a URL
Date Creation
dateTime
– creating a date value using the server’s calendardateTimeUTC
– creating a date value using the UTC calendar
Between Date Function Calls
millisecondsBetween
– the milliseconds between two datessecondsBetween
– the seconds between two datesminutesBetween
– the minutes between two dateshoursBetween
– the hours between two datesdaysBetween
– the days between two datesweeksBetween
– the weeks between two datescalendarMonthsBetween
- the months between two datescalendarYearsBetween
- the years between two dates
Add Date Function Calls
addMilliseconds
– adds milliseconds to a dateaddSeconds
– adds seconds to a dateaddMinutes
– adds minutes to a dateaddHours
– adds hours to a dateaddDays
– adds days to a dateaddDaysUTC
– adds days to a date using the UTC calendaraddWeeks
– adds weeks to a dateaddWeeksUTC
– adds weeks to a date using the UTC calendaraddMonths
– adds months to a dateaddMonthsUTC
– adds months to a date using the UTC calendaraddYears
– adds years to a dateaddYearsUTC
– adds years to a date using the UTC calendar
Trim to Date
trimToSeconds
– trims to secondstrimToMinutes
– trims to minutestrimToHours
– trims to hourstrimToHoursUTC
– trims to hours using the UTC calendartrimToDays
– trims to daystrimToDaysUTC
– trims to days using the UTC calendartrimToMonths
– trims to monthstrimToMonthsUTC
– trims to months using the UTC calendartrimToYears
– trims to yearstrimToYearsUTC
– trims to years using the UTC calendar
To String
See To String for details.
Parse Integer
See Parse Integer for details.
Parse and Format Decimal Function Calls
parseDecimal
– converts a string to a decimalformatDecimal
– converts a decimal to a string
Parse and Format Date Function Calls
parseDateTime[UTC]
– converts a string to a date valueformatDateTime[UTC]
– converts a date value to a stringformatTime[UTC]
– converts the time part of a date value to a stringformatDate[UTC]
– converts the date part of a date value to a stringdateTimeToEpoch
– converts a date to a longepochToDateTime
– converts a long to a date
Enumerations in Expressions
getCaption
– gets the caption of an enumeration value in current languagegetKey
– gets the technical name of an enumeration value