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.
Issue(s) to operate on
Select the issues on which the sequence of post-functions should be run.
Target issue(s)
Current issue - Select this option to run the sequence of post-functions on the current issue. This is the default option.
Issue/Subtasks
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
Epic/Stories
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
Issue Hierarchy
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
Issue Links
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”
Calculated
Current issue - Select this option to run the sequence of post-functions on the current issue. This is the default option.
Issue/Subtasks
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
Epic/Stories
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
Issue Hierarchy
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
Issue Links
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”
Calculated
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: 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
).
Post-functions
Create the ordered list of post functions to be run against the selected issue. The following controls are available (Figure 2, right):
Click Add post function to add a post function to the list.
To reorder post functions, use the handle ( ) to drag and drop a post function to its new position in the order.
Click Edit to edit an existing post function.
Click Remove to completely remove a post function from the sequence.
Note: this cannot be undone!
Error handling
By default, even if one of the post functions fails with an error, the remaining post functions in the sequence will still run. 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
Conditional Execution
It is possible to configure the post-function to execute (or not execute) only in specific circumstances. The Conditional execution option sets this behavior:
Run this post-function only if a condition is verified: Select this option to execute this post-function based on the result of a Nunjucks template. See Conditional execution for more information.
Condition: This option only displays when Run this post-function only if a condition is verified, above, is checked. Enter the Nunjucks template as needed.
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.
Passing variables within a sequence
By 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: 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") }}