Our new Appfire Documentation Space is now live!

Take a look here! If you have any questions please email support@appfire.com

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 30 Current »

A post-function that will link the current issue to all issues that satisfy a parameterized JQL query.

To add 'Link issues to the current issue' post-function to a transition: 

  1. Click Edit for the workflow that has the transition you wish to add the post-function on.

  2. In the Workflow Designer, select the transition.

  3. Click on Post Functions in the properties panel.

  4. Click on Add post function.

  5. Select Link issues to the current issue from the list of post-functions.

  6. Click on Add to add the post-function on the transition.

  7. Add a JQL query in the JQL expression.

  8. Select the maximum number of issues in Max. Issues.

  9. Select the link type from the Issue Link Type drop-down.

  10. Click on Add to add the post-function to the transition.

JMWE shows an error message on the issue view if any error occurs during the execution of the post-function. This message is displayed only if the current user is a Jira administrator. 

When you add this post-function to a transition and trigger it, the add-on links the current issue to the specified number of issues that satisfy the specified parameterized JQL query.

JQL Expression: Input a JQL expression that returns the issues to link. You can insert issue, transition, currentUser and now variables in your JQL expression and test it using the JQL expression tester provided in this post-function.

Examples:

  • project = TEST returns the issues of the project whose key is TEST

  • assignee is EMPTY returns all the unassigned issues.

  • project=TEST order by created desc returns the issues of the project whose key is TEST in descending order by Created time

Note: If the current issue satisfies the specified JQL query, an error is logged because you cannot link an issue with itself.

Note that to specify a condition on a user, you need to specify an accountId without the accountId: prefix. For example: assignee = 557058:472c64c9-2567-4213-839b-86bf21558300. You can access the prefix-less accountId of a user through the _accountId property.

Examples:

project = {{ issue.fields.project.key }} and assignee = {{currentUser._accountId}}
{% if issue.fields.assignee %}
    assignee = {{issue.fields.assignee._accountId}}
{% else %}
    issuekey=INVALID-1
{% endif %}

You can find more information about searching for Jira issues using JQL here: Advanced searching and Search Jira like a boss with JQL.

Max. Issues: Input the maximum number of issues that the JQL expression should return. The value cannot be more than 50.

Filter: Select this option to filter the issues returned by the JQL search. Input a Nunjucks template in the “Filter Expression” that returns true if the issue returned by the JQL search should be linked to the current issue. The filter script is evaluated for each issue returned by the JQL search, in turn, and that issue is available through the targetIssue variable. This is especially useful when you want to filter linked issues that cannot be filtered using the JQL. For example, filtering issues refining a text search with an exact match that cannot be done with JQL. For example to check for issues with summary ~ "MacBook Pro" the JQL returns all issues with “MacBook” and “Pro” in the summary (say, “MacBook for Pro users”). In such a case, you should be using the “Filter Expression” to filter issues that have “MacBook Pro” in the summary with a Nunjucks template as follows:

{{ issue.fields.summary.includes("MacBook Pro") }}

Link type

Issue Link Type: Select the link type to be created between the current issue and the issues returned from the JQL expression.

Run As

  • Run as current user: The current user will be the creator of the issue links.

  • Run as add-on user: The add-on user will be the creator of the issue links.

  • Run as this user: Any user selected in this field will be the creator of the issue links.

Conditional execution

To execute this post-function based on the result of a Nunjucks template see Conditional executionThe condition is evaluated only after the JQL query runs and not before. It will be evaluated against each issue returned by the JQL query allowing you to further filter the issues to link to the current issue. The issues returned by the JQL query will be available in your Nunjucks template  through the linkedIssue variable. 

Delayed execution

Post functions are provided with an option to delay their execution. You need to select the number of seconds to wait until the post-function is run, a default of 1 sec to a maximum of 20 seconds.

Workflows that depend on post functions being executed in a specific order fail due to the asynchronous nature of the Connect post-functions in Jira Cloud. One of the workarounds is to delay the execution of the post-functions and thereby create 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 use case below.

It is recommended to use the Sequence of post-functions post-function or Shared Action post-function post-function to run a list of post-functions in a sequence instead of applying a delay.

Sample use cases for Delayed execution

(lightbulb) On the creation of a Bug, assign it to a member of the QA team and then add the Assignee to the Watchers.

 Steps
  • Create a QA project role, with the testers as its members.

  • Add the Assign to role member post-function to the transition Create of the Bug workflow.

  • Select QA as the project role to look for.

  • Add the Copy value from field to field post-function to the Create transition of the Bug workflow.

  • Select Assignee as the From field.

  • Select Watchers as the To field.

  • Select the Delayed execution option and select 5 sec from the Delay drop-down.

(lightbulb) On the approval of a Story, create subtasks for Development and QA, and transition them to In Progress status.

 Steps
  • Add the Create issue post-function to the Approve transition of the Story workflow.

  • Select Same as current issue from the Project field.

  • Select Subtask from the Issue type field.

  • Select Current issue from the Parent issue field.

  • Repeat the above steps for the Development subtask.

  • Add the Transition linked issues post-function to the Approve transition of the Story workflow.

  • Select Issue Link Type as is Parent of.

  • Select the Delayed execution option and select 10 sec from the Delay drop-down.


Use case

A typical use case for this post-function is to link issues to the current issue during a transition. Consider a use case where you want to link the stories created under an Epic as siblings. To configure this:

  1. Add the “Link issues to current issue” post-function to the Create issue post-function

  2. Input the following JQL expression:

    {% if issue.fields["Epic Link"] %}
        "Epic Link" = "{{issue.fields["Epic Link"]}}"
    {% else %}
        issuekey=INVALID-1
    {% endif %}

  3. Input “Max issues” as 10

  4. Select the link type as “is sibling of”

  5. Save the post-function

  6. Publish the workflow

See here for more use cases

  • No labels