/
Copy field value from related issues

Copy field value from related issues

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

Documentation for JMWE 5.0.0 - 6.1.3 is available here.

A workflow post-function thatĀ sets the value of a field to the value of a field in related issues (such as linked issues, Stories of an Epic, Epic of a Story, subtasks of an issue, issues returned by a Groovy script or a JQL search, etc.)

  • ThisĀ post-function does not work with remote links (links to Jira issues residing on another Jira instance/server).

  • JMWE now considersĀ "symmetrical" link types (such as "relates to") as one link direction instead of twoĀ on the configuration screens and in the post-function execution.Ā 

To add the 'Copy field value from related issues' 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 onĀ Post FunctionsĀ in the properties panel.

  4. Click onĀ AddĀ post function.

  5. SelectĀ Copy field value from related issuesĀ from the list of post-functions.

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

  7. Select the field from the source field from theĀ SourceĀ Field drop-down.

  8. Select the field from the destination field from theĀ Destination Field drop-down.Ā SelectĀ "Same as Source field" to copy it to the same field.

  9. Select the issues to operate on fromĀ Source issue(s)Ā field

  10. Select the options provided to add the required parameters.

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

When you add this post-function to a transition and trigger the transition, the add-on sets the value of the "Destination field" on the current issue toĀ the value of the "Source field" in the related issues.



Ā 

Ā 

Source issue(s)

Select the issues to copy from. They can be:

  • Linked issues: Select issue(s) linked to the current issue through any link type or a specific link type such as blocks, is cloned by, etc.

  • Sub-tasks of the current issue: Select this option to operate on the sub-tasks of the current issue

  • Parent issue of the current sub-task: Select this option to operate on the parent of the current issue

  • Issues that belong to the current Epic: Select this option to operate on the issues that belong to the current Epic

  • Epic of the current issue: Select this option to operate on the Epic of the current issue

  • Child issues of the current issue in the Portfolio hierarchy: Select this option to operate 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 operate on the parent issue of the current issue in the Portfolio hierarchy

  • 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 operate on issues of a project with key TEST and issue type name same as the value in a text field

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



OptionsĀ 

  • Copy only if not set

Sets the value(s) of the selected field of the current issue, only when the field is empty on the current issue.

  • Ignore empty values

Will not set (clear) the selected field of the current issue, if the value from the related issues is empty or null.

  • Add source value(s) to destination field

Appends value(s) from the fieldĀ of each related issue to the selected field of the current issue.Ā This is applicable only to multi-valued fields.

  • Create missing value(s)

Allows automatically creating any missing value(s) while copying valuesĀ that do not exist in the destination issue's project and hence should be created fromĀ the source issue's project.Ā This is applicableĀ only to Affects Version/s, Fix Version/s, Single version and Multi-version picker type custom fields, Components, Radio buttons, Checkboxes, Single select and Multi-select list type custom fields.

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 applicable related issue, with each related issue being available, in turn, in theĀ relatedIssueĀ and deprecatedĀ linkedIssueĀ variables.

Error Handling

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.