Lists

JWT is capable of processing various types of lists, including text, number and issue lists. This page contains valuable information about working with lists.

The list data type is an ordered list of elements. Those elements have a certain data type (text or number).

It is possible to:

  • access individual elements (e.g. using the function nthElement()),

  • create lists out of virtual fields (e.g. using toStringList()) or

  • use the list functions presented on this page to work with lists.

Fixed values

 list can be written in literal as a comma separated list of texts in double quotes written inside brackets.

Expression

Description

Bash
[] #All lists are enclosed in brackets.

An empty list.

Bash
["Blue", "Green", "Yellow", "Orange", "Red"]

A text list with five elements.

Bash
[1,2,3]

A number list with three elements.

Bash
[1, {issue.subtasks.count}, {issue.links.count}]

A number list with three elements using field codes and JWT expression parser functions.

To achieve this, the following virtual field codes:

Bash
toStringList(%{issue.components})

A text list with all components of the current issue.

Fields codes of multi-valued fields, such as components, labels, etc. by default return a text with a comma separated list of values. If you want to individually process these elements, you need to convert the text into a text list using toStringList().

Learn more about Converting data types

Reading values from issue lists

Most of the times, lists are being defined or returned using field codes or JWT expression parser functions. In order to read or retrieve values from an issue list, functions such as fieldValue() must be used.

Expression

Description

Bash
fieldValue(%{issue.assignee}, subtasks())

A list of all assignees of the current issues's sub-tasks.

The list may contain duplicate user names.

To achieve this, the following functions were used:

Bash
distinct(fieldValue(%{issue.assignee}, subtasks()))

A list of all distinct assignees of the current issues's sub-tasks.

The list only contains unique user names.

To achieve this, the following functions were used:

Bash
fieldValue(%{issue.priority}, linkedIssues("blocks, is cloned by"))

A list of priorities of those issues linked to current issue through issue link types "blocks" and "is cloned by".

To achieve this, the following functions were used:

Bash
distinct(fieldValue(%{issue.components}, issuesUnderEpic()))

A list with distinct components of all issues which are linked to same epic as the current issue.

To achieve this, the following functions were used:

JWT offers individual operators that can be used when working with Lists.

Available operators

Function Short description Output
EXCEPT

Removes certain elements from a list.

list

INTERSECT

Returns common elements of two lists.

list

UNION

Returns distinct elements of two lists.

list

APPEND

Combines the elements of two lists.

list

Order of operations

If you use multiple operators in a single expression, they will follow a certain order in which they are processed or a precedence.

OPERATORS

PRECEDENCE

ASSOCIATIVITY

INTERSECT

1 (highest)

Left-to-right

APPENDEXCEPTUNION

2 (lowest)

Left-to-right

  • When using the list operators, you have to make sure that both lists that you compare are of the same type.

  • All operators are case insensitive, i.e., they can also be written in lower case: append, union, intersect and except.

  • There are four equivalent functions available for each type of list, and their behavior is exactly equivalent to that of its corresponding operator.

  • This way, you can choose to use operators or functions according to your preference. Although operators yield shorter expressions and with fewer parentheses, the usage of functions produces a more functional consistent syntax.

List functions for multiple list types

The following list contains all the available functions that work with all kinds of lists; text, number and issue lists.

Function Short description Output
union()

Returns distinct elements of two lists.

list

sublist()

Returns a defined extract of a given list.

list

textOnNumberList()

Returns a text list in a result of evaluating text_expression against each of the numeric values in argument numbers.

text list

distinct()

Removes all duplicates from a number, text, or issue list.

list

getRemoteLinks()

Returns a list of remote links.

text list

filterByCardinality()

Filters a given number, text, or issue list by the number of occurence of elements.

list

intersect()

Returns common elements of two lists.

list

last()

Returns the last element of a number, text, or issue list.

number   text    issue list

nthElement()

Returns the nth element of a number, string or issue list.

number text   issue list

append()

Combines the elements of two lists.

list

indexOf()

Returns the index / position of a specific element in a list.

number

first()

Returns the first element of a number, text, or issue list.

number   text   issue list

filterByValue()

Filters a number or text list using a given comparison.

list

count()

Returns the number of elements in a text, number or issue list.

number  

filterByPredicate()

Filters a number, issue, or a text list by a given logical expression.

list

invertList()

Inverts the order of a given list.

list

textOnStringList()

Matches elements of a text list against a text expression.

text list

mathOnStringList()

Returns a number list with results of the given calculation performed for each text in the specified list.

number list

except()

Removes certain elements from a list.

list

sort()

Sorts a given list in a specific order.

list

getMatchingValue()

Returns a custom reference value for a given or text or number

number   text

Number list (only) functions

The following list contains all the available functions that work with number lists only.

Function Short description Output
avg()

Calculates the average values of a given number list.

number

max(list)

Returns the highest value in a number list.

number

mathOnNumberList()

Returns a number list with results of the given calculation performed for each number in the specified list.

number list

min(list)

Returns the smallest value in a number list.

number

sum()

Sums up all values in a given number list.

number

Issue list (only) functions

The following list contains all the available functions that work with issue lists only.

Function Short description Output
issuesUnderEpic()

Returns all issues linked to a given epic

issue list

filterByResolution()

Filters a given issue list by resolution.

issue list

mathOnIssueList()

Returns a number list with results of the given calculation performed for each issue in the specified list.

number list

filterByIssueType()

Filters a given issue list by issue type.

issue list

filterByProjectCategory()

Filters a given issue list by project category.

issue list

issuesFromJQL()

Returns a list of issues returned by a specified JQL query.

issue list

siblingSubtasks()

Returns all sibling sub-tasks.

issue list

linkedIssues()

Returns a list of issues linked.

issue list

filterByProject()

Filters a given issue list by project.

issue list

siblingIssuesUnderEpic()

Returns all sibling issues linked to the same epic

issue list

allIssuesUnder()

Returns issues located in any level under a given parent issue according to Advanced Roadmaps hierarchy.

issue list

epic()

Returns all epics linked to specified issues.

issue list

filterByFieldValue()

Filters an issue list using a given comparison for field values.

issue list

fieldValue()

Returns a number or text list with field values.

number list   text list

transitivelyLinkedIssues()

Returns issues that are directly or transitively linked to the current issue.

issue list

getIssuesFromProjects()

Returns all issues from specified projects.

issue list

parent()

Returns the direct parent(s) of the given issue(s) according to Advanced Roadmaps hierarchy.

issue list

subtasks()

Returns sub-tasks of given issues.

issue list

siblingIssues()

Returns all issues which are located directly under a given issue's parent according to Advanced Roadmaps hierarchy.

issue list

textOnIssueList()

Returns a text list in result of evaluating textExpression against each of the issues in argument issues.

text list

filterByStatus()

Filters a given issue list by issue status.

issue list

issuesUnder()

Returns issues located in the level just under a given parent issue according to Advanced Roadmaps hierarchy.

issue list

issuesAbove()

Returns all issues located in any level above a given parent issue according to Advanced Roadmaps hierarchy.

issue list

filterByStatusCategory()

Filters a given issue list by status category.

issue list

transitionLinkedIssues()

Returns a list of all issues linked during the transition.

issue list

numberOfRemoteIssueLinks()

Returns the number of issue links to remote Jira instances

number