Operator Scope of Action:
Operator First Added:
This function returns the evaluated format of each of its comma-delimited argument list of expressions.
Expression arguments can be:
- Literal values:
Fred- though there's little point in using these unless the list is subsequently to be concatenated to a String.
- Basic literal operations
"Fred"+" " +Smith".
- Arithmetic operations:
- Attributes (values) both system e.g.
$Nameand user attributes e.g.
- Action operators
- Action code expressions, as in whole code expressions
$MyDate = max($MyDateA;$MyDateB;$MyDateC)
The latter fails as max() interprets the list as 3 literal strings "$MyDateA", etc., and does a lexical sort on those values. However:
$MyDate = max(list($MyDateA,$MyDateB,$MyDateC))
Functions creating lists (sum(), links(), collect(), etc.) do not have the same problems with the likes of max as the former output a valid list that can be used directly. For instance:
$MyDate = max(links.outbound.attended.$MyDate)
For more complex examples, where list items are action code expressions, it may be necessary to use eval() to wrap each list item expression, e.g.
This returns a list of numbers resulting from simple evaluations:
Output value, a list:
This example, this makes a single evaluated string out of a list of two expressions:
list("This note 's $Width is "+$Width, "the $Xpos is "+$Xpos).format(" and ")+"!")
Output value, a string:
This note's $Width is 3 and the $Xpos is 48.5!
This example is not overly complex but points to how list() can be used in constructing output strings/lists that are otherwise difficult to create. The more complex the expressions passed to list() the greater the likelihood of getting no output - or an unexpected one. If complex inputs do not work consider using more parentheses to help TB figure the order of sub-task execution or else put the result of expressions into new attributes and then pass the value of the latter into list() as a parameter.