JMWE shows an error message on the issue view if any error occurs during the execution of the post-function. This message is only displayed if the current user is a Jira administrator.
When you add this post-function to a transition and trigger it, each post-function defined in the sequence is run, one after the other on the target issues.
Issue(s) to operate on
Select the issues on which the sequence of post-functions should be run. They can be:
Current issue: Select this option to run the sequence of post-functions on the current issue. This is the default option.
Sub-tasks of the current issue: Select this option to run the sequence of post-functions on the sub-tasks of the current issue
Parent issue of the current sub-task: Select this option to run the sequence of post-functions on the parent of the current issue
Issues that belong to the current issue (Epic): Select this option to run the sequence of post-functions on the issues that belong to the current Epic
Epic of the current issue: Select this option to run the sequence of post-functions on the Epic of the current issue
Child issues of the current issue in the Portfolio hierarchy: Select this option to run the sequence of post-functions on the child issues of the current issue in the Portfolio hierarchy
Parent issue of the current issue in the Portfolio hierarchy: Select this option to run the sequence of post-functions on the parent issue of the current issue in the Portfolio hierarchy
Issues linked to the current issue through any link type: Select this option to run the sequence of post-functions on all issues linked to the current issue
Issues linked to the current issue through the following link type: Select this option to run the sequence of post-functions on the linked issues of a specific link type. Select the specific link type under “Issue link”
Issues returned by the following Nunjucks template: Select this option to run the sequence of post-functions on issues returned by the result of a Nunjucks template. Input a Nunjucks template which is a comma-separated list of valid issue keys. For example:
"TEST-1"
"TEST-1","TEST-2"
{{ targetIssue.fields.parent.key }}
{{ targetIssue.fields.subtasks | join(",", "key") }}
Issues returned by a JQL search: Select this option to run the sequence of post-functions on issues returned by a JQL search. Input a JQL search expression. For example:
project = TEST
returns issues of the project with the key TESTproject = {{ targetIssue.fields.project.key }} and assignee = {{currentUser._accountId}}
returns issues of a project that belong to the project with key TEST and the assignee is the current user{% if targetIssue.fields.assignee %} assignee = {{targetIssue.fields.assignee._accountId}} {% else %} issuekey=INVALID-1 {% endif %}
Note that the {% if %} block is necessary to avoid an invalid JQL query when the issue is unassigned. In that case, the template will return a valid JQL query that returns no issue (
issuekey=INVALID-1
).
Passing variables within a sequence
Using the {% setContextVar %}
Nunjucks tag you can pass data from one post-function to a subsequent post-function.
context
: Holds all the context variables added in the current post-function. For example, if you create a context variable myVar
in the first post-function of the sequence:
{% setContextVar myVar = "a value" %}
This variable will then be available to subsequent post-functions as:
{{ context.myVar }}
Note that this variable will not be available in the Nunjucks tester.
Variables specific to the Create Issue post-function
newIssueKey:
Stores the issue key of the last issue created by a Create Issue(s) post-function in the sequence. You can access it as:
{{ context.newIssueKey }}
newIssueKeys:
Stores an array of the keys of all the issues created by any Create Issue(s) post-function in the sequence. You can access the created issues from
{{ context.newIssueKeys }}
For example: to add a comment on the current issue with the keys of the issue created
Issues created are: {{ context.newIssueKeys | join(",") }}
You can access the information of a specific issue using the issue filter. For example: To get the assignee of the issue created by the Create issue post-function:
{{ context.newIssueKey | issue("assignee") | field("fields.assignee.displayName") }}
Error handling
If one of the post-functions fails with an error, the remaining post-functions in the sequence are run anyway. To stop the execution of subsequent post-functions after an error occurs, select the option “Skip subsequent post-functions if a post-function encounters an error”.
Conditional execution
To execute this post-function based on the result of a Nunjucks template see Conditional execution.
Delayed execution
Post functions are provided with an option to delay execution for a set number of seconds using the Delayed execution option (Figure 1, right). To delay execution, select the number of seconds to wait until the post-function is run; any value between 1 second (the default) up to a maximum of 20 seconds can be selected.
Workflows that depend on post functions being executed in a specific order can fail due to the asynchronous nature of Connect post-functions in Jira Cloud. One workaround is to delay the execution of a post-function, thereby creating a more predictable execution order. For example, on the approval of a Story you want to create sub-tasks and immediately transition them; in this case, you will have to delay the execution of the Transition Linked Issues post-function, so that the sub-tasks are created before they are transitioned. See the sample use case, below.
Where possible, it is recommended to use the Sequence of post-functions post-function or Shared action post-function to execute a series of post-functions in a specific sequence instead of applying a delay.