Our new Appfire Documentation Space is now live!

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

Copy issue fields

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

 

A workflow post function that allows you to copy the values of one or more fields from the current issue or related issue(s) or a set of filtered issues to the specified destination issue(s).

To add the 'Copy Issue Fields' post-function to a transition:

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

  2. In the Workflow Designer, select the transition.

  3. Click Post Functions in the properties panel.

  4. Click Add post function.

  5. Select Copy issue fields from the list of post-functions.

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

  7. Configure the post-function as needed. See below for more information. 

  8. Click Add to add the post-function to the transition.

 

Configuration details

Configure the following details in the Copy issue fields post-function screen:

Issue(s) to operate on

  • Source Issue(s): Select the issues from which the specified field(s) are copied. Select one of the following:

    • Current issue: Select this option to copy the value of the selected field(s) from the current issue. This is the default option.

    • Sub-tasks of the current issue: Select this option to copy the value of the selected field(s) from the sub-tasks of the current issue.

    • Parent of the current sub-task: Select this option to copy the value of the selected field(s) from the parent of the current issue.

    • Issues that belong to the current issue (Epic): Select this option to copy the value of the selected field(s) from the issues that belong to the current Epic.

    • Epic of the current issue: Select this option to copy the value of the selected field(s) from the Epic of the current issue.

    • Child issues of the current issue in the Portfolio hierarchy: Select this option to copy the value of the selected field(s) from 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 copy the value of the selected field(s) from 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 copy the value of the selected field(s) from all the issues linked to the current issue.

    • Issues linked to the current issue through the following link type: Select this option to copy the value of the selected field(s) from the issues linked to the current issue through a specific link type. Select the specific link type under “Issue link”.

    • Issues returned by a Groovy script:  Input a Groovy script that returns either a single Issue object, or a Collection of Issue objects, or a String representing the key of an issue, or a Collection of Strings each representing an issue key. For example:

      • "TEST-1"

      • ["TEST-1","TEST-2"]

      • ComponentAccessor.issueManager.getIssueObject("TEST-1")

      • [ComponentAccessor.issueManager.getIssueObject("TEST-1"),ComponentAccessor.issueManager.getIssueObject("TEST-2")]

      • issue.parentObject

      • issue.getLinkedIssues()

    • Issues returned by a JQL search:  Input a JQL search expression, including an optional Groovy Template markup. For example:

      • project = TEST returns issues of the project with the key TEST

      • project = ${issue.get("project").key} and assignee = ${currentUser.name} returns issues of the project the current issue belongs to and assigned to the current user.

      • To copy fields from issues of the TEST project whose issue type name is found in the value of the Single line text text field:

        <% if (issue.get("Single line text")) { %> project = TEST and issuetype = ${issue.get("Single line text")} <% } else { %> issuekey=INVALID-1 <% } %>

         

  • Note that the <% if %> block is necessary to avoid an invalid JQL query when the Single-line text field is empty. In that case, the template will return a valid JQL query that returns no issue (issuekey=INVALID-1). This is in general applicable to JQL operating on select type fields with pre-determined values like Affects Version/s, Checkboxes etc.

  • The maximum number of issues returned by a valid JQL is limited to 1000.

  • Destination Issue(s): Select the issues to which the specified field(s) are copied. The options available here are the same as those from Source Issue(s).

Fields to copy

This section allows you to add a list of fields to copy from the source issue(s) to the destination issue(s).

Click Add another field to add one more field to the list, then specify the following:

  • Source Field: Select a field to copy from the source issue(s).

  • Destination Field: Select a field from the destination issue(s) to which the source field value is copied.

  • Options: Select one or more options for copying the values. Available options:

    • Copy only if not set: Sets the value of the selected destination field only if the field in the destination issue(s) is empty.

    • Create missing value(s): Allows creating any missing component(s), version(s) or options while copying to a field that expects Versions, Components, or Options.

    • Ignore empty values: Does not copy the source value to the destination issue, if the source value is empty or null. This means a blank value will not be assigned to the destination field and the respective field value will be retained as-is.

    • Add source value(s) to destination field: Adds the value(s) to the selected field of the destination issue, instead of replacing its value(s). This applies to only multi-valued fields.

Click the Delete icon next to a field to stop copying that field.

Global Options

  • Trigger an "Issue Updated" notification email on each modified issue: Select this option to allow Jira to send notifications for the change in the values of the selected field(s) on the destination issue(s).

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

Input a Groovy expression that returns true if the post-function should run. For more information see Conditional execution using Groovy expression. Note that the condition will be evaluated once per combination of source and destination issues, which are available in the sourceIssue and destinationIssue variables.

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 a production Jira instance, 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.