Our new Appfire Documentation Space is now live!

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

Link issues to the current issue

Are you using JMWE for Cloud and want to learn how to use this post-function? Head to our documentation here.

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

To add the '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 drop-down.

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

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.

Issues to link

  • JQL Expression: Input a JQL expression that returns the issues to link. You can include Groovy Template markup to your JQL expression and test 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 = TP and assignee = <%= issue.get("reporter").getName() %> returns the issues of the project whose key is TP and the reporter is the assignee.

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 Groovy 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 relatedIssue variable. See here for more information.

Link type

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

Customize this post-function using the additional options provided as part of the post-function. The options are:

Run As

Run as user: Select one of the following options to set the author of the action performed by this post-function as:

  • Current user: The user transitioning the issue.

  • Specific user: The user specified in the select-list provided. Start typing into the field to select a user from the list of auto-suggestions.

  • User in field: The user specified in a user picker field of the issue being transitioned. Select one of the user fields from the list of available options in the field provided.

  • User from script: The user returned by the Groovy script specified in Script. This script should return either the Username of the user or an ApplicationUser object.

    Examples:

    • "jdoe" - Username

    • issue.get("assignee") - the current issue's Assignee

Conditional execution

To execute this post-function based on the result of a Groovy expression see Conditional execution/validation using a Groovy expression. The condition is evaluated before the JQL query runs and if it returns false, the JQL query will not be run at all. This is especially useful when the JQL expression can become invalid under certain circumstances. For example, consider this simple JQL expression:

Resolution = "${issue.get("resolution")}"

If the current issue is unresolved, the JQL expression will become:

Resolution = ""

which will throw an error because "" is an invalid Resolution value (as you can test for yourself on Jira's Advanced Search page). The way to avoid this error is to use the following conditional execution script:

issue.get("resolution") != null

Error Handling

Make transition fail when an error occurs in this post-function: Select this option to make errors raised by the current post-function prevent the transition from completing and show the error in the browser.

By default, all errors (Java Exceptions) raised by this post-function, including those raised by custom Groovy scripts, will be logged in the JIRA log file but will not be reported to the user and will not prevent the transition from completing. However, when designing new workflows or troubleshooting them, it is more convenient to be notified immediately of any such error during the execution of the transition. For example on the production Jira instances you might want to show errors only for the post-function(s) being worked on, in order to avoid disrupting other workflows. To make errors raised by the current post-function prevent the transition from completing and show the error in the browser, select Make transition fail when an error occurs in this post-function.

If you want to show all the errors, either only to the admins or to all users, configure the option globally on the JMWE configuration page. For example, on development and staging Jira instances, you can activate error reporting for all JMWE post-functions, to display all the errors and it is recommended to do so, and on production Jira instances you might want to activate error reporting only to administrators so that they can be made aware of configuration errors.

When the option is selected on a post-function, it overrides the configuration on the JMWE configuration page.