Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page properties
hiddentrue
Tech review

Status
colourGreen
titledone

Style guide

Status
colourGreen
titledone

Page status

Status
colourGreen
titledone

Status
titletodo
Status
colourYellow
titleReady for review
Status
colourGreen
titledone
Status
colourRed
titleflagged

Panel

On this page

Table of Contents
maxLevel2
exclude(On this page).*
stylecircle
typeflat
separatorpipe

UI Text Box
sizemedium
typeinfo

JWT is capable of processing values from multiple sources (e.g. issues, custom fields etc.). These sources are called seeds.

The following seeds are available:

  • Seed issues: All issues that are found or returned by an issue list
  • Seed strings: Strings, or texts, that are usually returned by a text list (e.g. custom field option list, list of components etc.)
  • Seed numbers: Fixed numbers or numbers returned by a calculation

If values from a seed source are needed to perform actions, the field codes need to be precedented with ^ or the word seed.

Code Block
languagebash
linenumberstrue
%{seed.issue.summary} # is the same as
^%{issue.summary}

JWT iterates over each seed and performs an action based on the values being found or specified. Whatever function or action you specify will be performed for each seed JWT recognizes.

Hier wäre doch ein Screencast wunderbar (smile) "Seeds in 60 seconds" - Oder erklärende Grafiken

Examples: to be linked and created

...

Probably most of the time, doing things with the help of JWT is related to a single object - the issue currently being transitioned, e.g. by adding a comment, updating a field, sending an email, etc.

Referring to the current issue's information can be done by using a simple

...

field code like %{issue.

...

description}.

However, since you can also use more complex functions in JWT that work with multiple objects, this simple notation is not sufficient for those use cases. To name a few examples

  • Creating sub-tasks based on the (dynamic) selection of components set in the current issue
  • Create a task for each issue returned by a JQL query (dynamic)
  • Create a set of three (static) stories in an Epic with distinct pieces of information

Whenever Jira Workflow Toolbox has to handle (or iterates over) multiple elements of

...

Lists (or sources), those elements are referred to as seeds. Depending on the type of list, those are referred to as 

  • Seed issues - for elements of issue lists
  • Seed texts - for elements of text lists (e.g. custom field options, components etc.)
  • Seed numbers - for elements of number lists


Image AddedSeed issues

Issue lists can be specified by JQL queries, issue list expressions, or (in some post functions or automation actions)

...

by predefined selections, e.g. Issues under Epic.

UI Text Box
typetip
When dealing with issue lists, the notation for accessing values of each element

...

is %{seed.issue.

...

someField}, e.g.

...

 %{seed.issue.summary}

Workflow

...

functions and automation actions

You might face seed issues when trying to

...

create/update/transition multiple issues.

...

Number of issues to be createdModeDescription
Multiple issues

...

JQLAn issue is created for every issue returned by the JQL query.
Multiple issues

...

Issue listAn issue is created for every issue returned by the issue list expression.

...


Example: You want to create multiple issue based on a a custom JQL that returns three issues:

  • DEMO-1 Issue A
  • DEMO-2 Issue B
  • DEMO-3 Issue C

Creating issues based on this JQL query, the post function will run three times, where the following values will be returned throughout those three runs

Run%{seed.issue.key}%{seed.issue.summary}

...

1DEMO-1Issue A
2DEMO-2Issue B
3DEMO-3Issue C

In general, using the seed notation, the nth run returns the field values of the nth issue from this list.

...

When choosing the Issue list mode, e.g.

...

with an expression like linkedIssues()

...

, the behavior is the same

...

.

Further workflow functions and automation actions using seed issues

...

(warning) tbd.

Expression parser functions

List functions like mathOnIssueList() or textOnIssueList()

(warning) tbd.

Seed texts

Text lists can either be

  • static, e.g. ["firstElement", "secondElement", "thirdElement"], or
  • composed dynamically

...

  •  by using the toStringList() expression parser functions, e.g. toStringList(%{issue.components}) or toStringList(%{issue.

...

  • cf12345}}) (where the custom field with the ID 123456 is a multi option custom field) or
  • calculated by using one of the functions that return a text list like fieldHistory(), groupsUserBelongsTo() etc., e.g. fieldHistory(%{issue.summary}}) or groupsUserBelongsTo(%{system.currentUser}})
UI Text Box
typetip
When dealing with text lists, the notation for each element %{seed.text}.

...

Workflow functions and automation actions

Create issue post function

...

Number of issues to be createdModeDescription
Multiple issues

...

Text listAn issue is created for each element of a text list.


Given the example of a static list above, the post function will run three times and the following values will be returned throughout those three runs

Run%{seed.text}

...

1firstElement
2secondElement
3thirdElement

Given a dynamic example, having selected the components Frontend and Backend on an issue, the post function will run two times returning the following values for each run

Run%{seed.text}

...

1Frontend
2Backend

After adding a third component Interface, the post function will run three times returning the following values for each run

Run%{seed.text}

...

1Frontend
2Backend
3Interface

...

Transition issues post function or Transition issue action

According to this scenario, composing a summary with an expression like


Code Block
languagebash
linenumberstrue
"Summary of " + %{seed.text} + " Issue"


will result in three issues, named

  • Summary of Frontend Issue
  • Summary of Backend Issue
  • Summary of Interface Issue

...

Expression parser functions

List functions like mathOnStringList() or textOnStringList()

(warning) tbd.

Examples


Image AddedSeed numbers

Number lists can either be

  • static, e.g. [1, 2, 3], or
  • composed dynamically by using the toNumberList() expression parser function

...

...

  • , e.g

...

  • releaseDates(%{issue.fixVersions}) or timesOfTransition("Done","Open"})
UI Text Box
typetip
When dealing with number lists, the notation for each element is {seed.number}.

...

Workflow functions and automation actions

Number of issues to be createdModeDescription
Multiple issues

...

Numeric modeThe number of issues provided by the numeric value is created.


Given a static example with the numeric value

...

of 3 in order to create three issues, the following values will be returned for each run

Run{seed.number}

...

11
22
33

The number 3 is interpreted as a number list [1, 2, 3

...

].

According to this scenario, composing a summary with an expression like

Code Block
languagebash
linenumberstrue
"Summary of Issue # " + {seed.number}

...

will result in three issues, named

  • Summary of Issue

...

  • # 1
  • Summary of Issue

...

  • # 2
  • Summary of Issue

...

  • # 3

Expression parser functions

List functions like mathOnNumberList() or textOnNumberList()

...


Excerpt Include
DECADIS:Contact support
DECADIS:Contact support
nopaneltrue