Expression Language Examples

Expression Language Examples

In this Page

Object Examples

Conditional Expression

Expression

$.hasOwnProperty('query.fred') ? $query.fred : 'not present in input'

Description

This example is one way of doing an if-then-else expression.

Example

For example, to set a default pipeline variable in a document object, if you use the following expression for a mapper variable $lastname:

$.hasOwnProperty('lastname') ? $lastname : _lastname

$lastname has the value of $lastname as supplied by a document in the stream. If there is no document input, then $lastname is set to the _lastnameparameter value.

String Examples

Checking for a Non-empty String

Expression

$customer.lastname.trim() || 'default'

Description

The expression verifies if $customer.lastname and $customer.lastname.trim() has a value. If it does, then the value of $customer.lastname.trim() is applied to the target path, otherwise 'default' gets applied to the target path.


Checking for an Existing Value

Expression

$.hasOwnProperty('customer.lastname') || 'default'

Description

The expression verifies if $customer.lastname exists in the input document. It returns True if $customer.lastname exists, else it shows 'default' as a string and applies it to the target path. 

Checking for a Non-empty String and an Existing Value

Expression

($.hasOwnProperty('customer.lastname') && $customer.lastname.trim()) || 'default''

Description

The expression verifies if a property exists in the input document and if $customer.lastname and $customer.lastname.trim() provide a value. If it does then it applies its value to the target path, otherwise it applies 'default' to the target path.

Creating an Email Address from First Initial, Last Name

Expression

$first_name.substr(0,1).toLowerCase()+$last_name.toLowerCase() + "@example.com"

$first_name.charAt(0).toLowerCase()+$last_name.toLowerCase() + "@example.com"

Description

Either expression grabs the first letter of the $first_name field, converts it to lowercase, then adds it to the $last_name value and appends "@example.com" before writing it to $Email.

Date Examples

Creating and Formatting a Date in a Specific Timezone

Expression

Date.now().toLocaleDateString('{\"timeZone\":\"PST\", "format":"yyyy-MM-dd"}')

Description

The expression creates the current date time in the PST timezone and formats its output into a string in the form of yyyy-MM-dd.

Formatting a Date to Include Letters

Expression

Date.now().toLocaleDateTimeString('{"format":"yyyy-MM-dd\'T\'hh:mm:ss.SSS\'Z\'"}')

Description

The expression creates the current date time and format its output into a string to include the letter "T" and "Z". Characters outside of normal SQLDate specials can be added by escaping them.

Creating an ISO-formatted Date in the Current Timezone

Expression

Date.now().toLocaleDateString('{\"timeZone\":\"PST\"}')

Description

The expression creates the current date time in the local time zone and formats its output into a string for the ISO date time format.

Parsing a Date

Expression

Date.parse($StandardDate)

Description

This expression parses a string representation of $StandardDate into a DateTime object. The string representation should have one of the following formats:

  • yyyy/MM/dd

  • yyyy/MM/dd HH:mm

  • yyyy/MM/dd HH:mm:ss

  • yyyy/MM/dd HH:mm:ss.SSS

  • MM/dd/yyyy

  • MM/dd/yyyy HH:mm

  • MM/dd/yyyy HH:mm:ss

  • MM/dd/yyyy HH:mm:ss.SSS

  • MMM dd, yyyy

  • EEE, dd MMM yyyy HH:mm:ss

  • EEE, dd MMM yyyy HH:mm:ss z (where z refers to the general time zone. For example: GMT-0800 for PST time)

  • EEE, dd MMM yyyy HH:mm:ss 'GMT'Z (where Z refers to the GMT time offset. For example: GMT-0700 for PDT time)

  • yyyy-MM-dd

  • yyyy-MM-dd'T'HH:mm:ss

  • yyyy-MM-dd'T'HH:mm:ssXXX

  • yyyy-MM-dd'T'HH:mm:ss.SSS

  • yyyy-MM-dd'T'HH:mm:ss.SSSXXX

  • yyyy-MM-dd HH:mm

  • yyyy-MM-dd HH:mm:ss

  • yyyy-MM-dd HH:mm:ssXXX

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyy-MM-dd HH:mm:ss.SSSXXX

Parsing a Non-standard Date

Expression

Date.parse($NonStandardDate, "yyyy MM dd")

Date.parse($nonstandard_datetime, "yyyy-MM-dd HH:mm:ss.SSS")

Description

These examples parse the date into a DateTime object using the provided format.

Formatting Today's Date to Display as the Current Month

Expression

Date.now().toLocaleDateString({"format":"MMMM"})

Description

This expression takes today's date and formats the output in a string indicating the month in text.

Filtering Examples

Filtering for Two Possible Values

Expression

$Priority == "Resolve Immediately" || $Priority == "High Attention"

Description

Used in a Filter Snap, this expression finds only those items that have $Priority set to either Resolve Immediately or High Attention.

Filtering by Multiple Fields

Expression

$Workflow == "Ready For Testing" && (($Priority == "Resolve Immediately") || ($Priority == "High Attention"))

Description

Used in a Filter Snap, this expression finds only those items that are in the $Workflow step of Ready for Testing and $Priority is set to either Resolve Immediately or High Attention.

Filtering by Date within Timeframe

Expression

$ClosedDate >= Date.now().minusHours(24)

Description

Used in a Filter Snap, this expression finds only those items that have a $CloseDate within the last 24 hours.

Other Examples

Making a Field Value a Link

Expression

'<a href="' + $Link + '">' + $ID + '</a>'

Description

This expression turns the value of the $ID field into a HTML link pointing to the location found in the $Link field.

Mapping Values to an Array

This series of expressions maps data from:

[ { "ORG_ASSIGNMENT": [ { "ORGTXT": "Network Services", "JOBTXT": "Service technician", "POSTXT": "Manager" } ]

to name/value pairs within an array:

[ "Organization": { "Unit": [ [ "Position", "Manager" ], [ "Grade", "Service technician" ], [ "Division", "Network Services" ] ] } ]

 

Expression

[‘Position’, jsonPath($, “ORG_ASSIGNMENT[*].POSTXT”).toString()]

Target path

$Users.User[*].Organization.Unit[0]

Expression

[‘Grade’, jsonPath($, “ORG_ASSIGNMENT[*].JOBTXT”).toString()]

Target path

$Users.User[*].Organization.Unit[1]

Expression

[‘Division’, jsonPath($, “ORG_ASSIGNMENT[*].ORGTXT”).toString()]

Target path

$Users.User[*].Organization.Unit[3]