Array Concatenation in Automation Rules


It is now possible to concatenate arrays in automation rules.  In the example that was given in a previous blog post about attachments in UI extensions and automation rules, two arrays of attachments were combined in one note.  To combine the attachments of the first and last note of a workflow, for example, the following expressions can be used:

notes: workflow.notes

e1: notes[last].attachments + notes[first].attachments

The constraints for this + operator are as follows:

  • The first operand must be an array
  • The second operand must be either:
    • an array of the same type as the elements of the first operand (i.e. one cannot concatenate ‘apples’ and ‘oranges’)
    • a single item of the same type as the elements of the first operand
  • Multiple concatenations may be performed in a single expression

More examples of what is allowed:

notes: workflow.notes

e1: notes + notes[first] + notes[last] + notes

e2: workflow.requests[first].notes + notes + notes[first]

e3: find_all(people, '') + workflow.manager

Note that if the first operand is not an array, the result follows the normal (existing) rules for the + operator.  For example:

e1: notes[first] + notes

This is allowed, but the result is not an array of notes.  Instead, the notes are converted to strings and joined together using , (a comma).