69. Functions Reference

    CloverDX transformation language has at its disposal a set of functions you can use. We describe them here.

    All functions can be grouped into following categories:

    Remember that with CTL2 you can use both CloverDX built-in functions and your own functions in one of the ways listed below.

    Built-in functions

    • substring(upperCase(getAplhanumericChars($in.0.field1))1,3)

    • $in.0.field1.getAlphanumericChars().upperCase().substring(1,3)

    The two expressions above are equivalent. The second option with the first argument preceding the function itself is sometimes referred to as object notation. Do not forget to use the $port.field.function() syntax. Thus, arg.substring(1,3) is equal to substring(arg,1,3).

    You can also declare your own function with a set of arguments of any data type, e.g.:

    function integer myFunction(integer arg1, string arg2, boolean arg3) {
        <function body>

    User-defined functions

    • myFunction($in.0.integerField,$in.0.stringField,$in.0.booleanField)

    • $in.0.integerField.myFunction($in.0.stringField,$in.0.booleanField)

    Remember that the object notation (<first argument>.function(<other arguments>) cannot be used in Miscellaneous functions. See Miscellaneous Functions.

    Remember that if you set the Null value property in metadata for any string data field to any non-empty string, any function that accepts string data field as an argument and throws NPE when applied on null (e.g., length()) will throw NPE when applied on such specific string.

    For example, if field1 has the Null value property set to "<null>", length($in.0.field1) will fail on the records in which the value of field1 is "<null>" and it will be 0 for empty field.

    For detailed information, see Null value.