Built-In Functions

FEEL includes a library of built-in functions that you can use to define expressions.

Oracle Integration supports the following types of built-in functions in decisions. Additionally, to assist with expression creation, a list of built-in functions is presented as suggestions when you click an empty expression field.

String Functions

Name(parameters) Parameter Domain Description Example

string(from)

non-null

Convert from to a string.

string(1.1) = "1.1" string(null) = null

substring(string, start, length)

string, number1

Return length (or all) characters in string, starting at start position. The first position is 1, last position is -1.

  • substring("redwood",3) = "dwood"

  • substring("redwood",3,3) = "dwo"

  • substring("redwood", -2, 1) = "o"

string length(string)

string

Return length of string.

string length("red") = 3

upper case(string)

string

Return uppercased string.

upper case("aBc4") = "ABC4"

lower case(string)

string

Return lowercased string.

lower case("aBc4") = "abc4"

substring before (string, match)

string, string

Return substring of string before the match in string.

  • substring before("redwood", "wood") = "red"

  • substring before("redwood", "xyz") = ""

substring after (string, match)

string, string

Return substring of string after the match in string.

  • substring after("redwood", "dw") = "ood"

  • substring after("", "o") = ""

replace(input, pattern, replacement, flags?)

string2

Regular expression pattern matching and replacement.

replace("abcd", "(ab)|(a)", "[1=$1][2=$2]") = "[1=ab] [2=]cd"

contains(string, match)

string

Does the string contain the match?

contains("redwood", "de") = false

starts with(string, match)

string

Does the string start with the match?

starts with("redwood", "re") = true

ends with(string, match)

string

Does the string end with the match?

ends with("redwood", "d") = true

matches(input, pattern, flags?)

string2

Does the input match the regexp pattern?

matches("redwood", "^re*w") = true

List Functions

Name(parameters) Parameter Domain Description Example

list contains(list, element)

list, any element of the semantic domain including null

Does the list contain the element?

list contains([1,2,3], 2) = true

count(list)

list

Return size of list.

count([1,2,3]) = 3

minimum(list)

(list of) comparable items

Return minimum item.

minimum([1,2,3]) = 1

maximum(list)

(list of) comparable items

Return maximum item.

maximum([1,2,3]) = 3

sublist(list, start position, length?)

list, number1, number2

Return list of length (or all) elements of list, starting with list[start position]. The first position is 1, last position is -1.

sublist([1,2,3], 1, 2) = [2]

append(list, item…)

list, any element including null

Return new list with items appended.

append([1], 2, 3) = [1,2,3]

concatenate(list…)

list

Return new list that is a concatenation of the arguments.

concatenate([1,2],[3]) = [1,2,3]

concatenate(1,2,3) = [1,2,3]

concatenate([1,2],3) = [1,2,3]

insert before(list, position, newItem)

list, number1, any element including null

Return new list with newItem inserted at position.

insert before([1,3],1,2) = [1,2,3]

remove(list, position)

list, number1

The list with item at position removed.

remove([1,2,3], 2) = [1,3]

reverse(list)

list

Reverse the list.

reverse([1,2,3]) = [3,2,1]

index of(list, match)

list, any element including null

Return ascending list of list positions containing match.

index of([1,2,3,2],2) = [2,4]

union(list…)

list

Concatenate with duplicate removal.

union([1,2],[2,3]) = [1,2,3]

distinct values(list)

list

Duplicate removal.

distinct values([1,2,3,2,1]) = [1,2,3]

flatten(list)

list

Flatten nested lists.

flatten([[1,2],[[3]], 4]) = [1,2,3,4]

sum(list)

(list of) numbers

Return sum of numbers.

sum([1,2,3]) = 6

mean(list)

(list of) numbers

Return arithmetic mean (average) of numbers.

mean([1,2,3]) = 2

Numeric Functions

Name(parameters) Parameter Domain Description Example

number(from, grouping separator, decimal separator)

number, separator, decimal notation

Convert from to a number.

number("1 000,0", " ", ",") = number("1,000.0", ",", ".")

decimal(n, scale)

number, number1

Return n with given scale.

  • decimal(1/3, 2) = .33

  • decimal(1.5, 0) = 2

  • decimal(2.5, 0) = 2

floor(n)

number

Return greatest integer <= n.

  • floor(1.5) = 1

  • floor(-1.5) = -2

ceiling(n)

number

Return smallest integer >= n.

  • ceiling(1.5) = 2

  • ceiling(-1.5) = -1

Boolean Functions

Name(parameters) Parameter Domain Description Example

not(negand)

boolean

Logical negation.

  • not(true) = false

  • not(null) = null

Conversion Functions

Name(parameters) Parameter Domain Description Example

date(from)

date string

Convert from to a date.

date("2012-12-25") - date("2012-12-24") = duration("P1D")

date(from)

date and time

Convert from to a date (set time components to null).

date( date and time("2012-12-25T11:00:00Z")) = date("2012-12-25")

date and time(from)

date time string

Convert from to a date and time.

date and time("2012-12-24T23:59:00") + duration("PT1M") = date and time("2012-12-25T00:00:00")

time(from)

time string

Convert from to time.

time("23:59:00") + duration("PT2M") = time("00:01:00")

time(from)

time, date and time

Convert from to time (ignoring date components).

time( date and time("2012-12-25T11:00:00Z")) = time("11:00:00")

duration(from)

duration string

Convert from to a date and time or years and months duration.

  • date and time("2012-12-24T23:59:00") - date and time("2012-12-22T03:45:00") = duration("P2DT20H14M")

  • duration("P2Y2M") = duration("P26M")

years and months duration(from, to)

both are date and time

Return years and months duration between from and to.

years and months duration( date("2011-12-22"), date("2013-08-24") ) = duration("P1Y8M")