The 'Copy Value From Other Field' post-function copies the value of one field to another field. You can configure any number of source / destination field pairs.
The copy operation will be performed either within the very same issue or to / from some related issue.
You must specify the relation between the source and destination issues for the field to copy. Then you can add any number of field pairs to perform the copy operation.
- True (Precondition must be true to execute a post function)
- False (Precondition must be false to execute a post function)
You can learn more about our preconditions in the Workflow Preconditions topics.
For example, instead of copying a field within an issue during a post function, you might choose to copy it to a sub-task.
Types of Issue Relations
Related issues are identified by one of the following Jira concepts:
- Issue Link: You can define the link type to define which issues exactly will be affected by the operation.
If the link type is ANY, the operation will be performed on any linked issues.
- Parent / Sub-Task:The related issue is either parent or sub-task of each other.
- Epic / Issue in Epic: This is only applicable if you have Jira Software installed. The other issue is either the epic related by an epic link, or it is part of an epic.
- JQL: A JQL query will be executed to find the issues, which will be affected by the post function. You can use some placeholders in the JQL query, which will be replaced with the current field values of the issue in transition. For tips on writing the JQL query, see JQL Reference or our JQL Use Cases for some examples.
Issue in Transition
We use the term 'Issue in Transition' when we refer to the issue for which a workflow condition is checked, for which a workflow validator is examined, or for which a workflow post function is performed; in other words, that issue triggered a workflow condition/validator/post function to be executed.
Source and Destination
For example, the Copy Value From Other Field post function allows you to define the issue in transition as the source or destination of the copy operations, while you define the other end with an issue relation. The field value is then read from the source issue and written to the destination issue. Other workflow modules do not have source and destination; you simply define the issue relation which applies for that workflow module. For example, the Create a Linked Issue post function creates a new issue and then connects it with some Issue Relation to the issue in transition.
While we try to execute as many configurations as possible, there are some restrictions you should keep in mind.
- Copy Value From Other Field post function: there should be only one source issue. Otherwise, it is not clear from which the value will be read. (The current implementation will just pick one of them and ignore the rest.)
- If you use Create a Linked Issue post function to create a new sub-task, you must also configure this post function to create the new issue as an issue type of a sub-task and make sure the target project is the same as the one for the issue in transition.
If you encounter problems, the workflow module will still run through but will add a message to the log file. See how to turn on the full logging for JSU in our Troubleshooting topic. It is advised that you do this while you test any new workflow configuration to make sure you're not missing anything.
Keep in mind that not all conversions from source to destination field are supported, nor feasible. We can only ensure that it will work if the source and destination fields are of the same field type, or the destination field is a text field. (Some additional combinations of different field types might work although not 'officially' supported.)
Overwrite / Append / Prepend
For text fields and other fields that can accept multiple values (like checkboxes), you can choose to overwrite, append, or prepend the new value to any existing value. In the case of a text field, you can also choose a separator that will be placed between the values (not shown in the screenshot above).
Create version if necessary
Imagine your origin issue has a version, and that you want to copy to the linked issue. If the destination field is 'Fix Version/s', 'Affects Version/s' or some custom field of type 'Version Picker', you can choose that a new version will be created in the target project, if it does not yet exist. If you don't choose this option and that version does not yet exist, the user will get an error message and the transition will complete.
However be aware, that a user needs the 'Administer Projects' permission to be able to create a new version.
Create component if necessary
Imagine your origin issue has a component, that you want to copy to the linked issue. If the destination field is 'Components', you can choose that a new component will be created in the target project, if it does not yet exist. If you don't choose this option and that component does not yet exist, the user will get an error message and the transition will complete.
Note that a user needs the 'Administer Projects' permission to create a new component.
For source, you have some additional options:
- *** empty ***: The destination field will be cleared.
- *** last comment ***: The last comment from the source issue will be copied. In some cases that might be the comment from the transition screen, which the user just entered while performing the current transition.
For destination, you have also special options:
- *** new comment *** :A new comment will be created with the copied value. When you choose to 'overwrite' to new comment, a new comment is created, enabling you to add multiple comments in one post function.
Copy Description to New Comment, overwrite→ creates a new comment with the description
Copy Summary to New Comment, append with separator ", "→ appends the summary to the previously created comment, so the comment will look like <Description>, <Summary>
Copy Assignee to New Comment, overwrite→ creates a new comment
This configuration will result in two comments being created, one with the description and summary, and one with the assignee.
Also see the note about supported field types further down.
Note the following behaviors of the asynchronous execution:
- If you are using multiple post functions, there is no guaranteed order in which they are performed. They might be executed in a different order from the one you set up in Jira's workflow configuration. Therefore, you cannot rely on any result of a 'previous' post function. Also, the order in which the post functions are executed might be different every time the transition is performed.
- If a post function encounters a problem (due to misconfiguration or the current data of a Jira issue), the transition (and all other post functions) will be performed regardless of the problem.
- The result of a post function might not be visible immediately in the browser.
- There are no error messages displayed to the user.
A workflow is configured so that the 'Resolve' transition has the 'Copy Value From Other Field' post-function. The function is configured to copy the value of the 'Assignee' field to the 'TextField' field. If a user resolves an issue on this workflow, the value of the 'Assignee' field will be copied to the 'TextField' field after the issue is resolved.
Supported Field Types
JSU supports many different field types; system fields, as well as custom fields.
You should be aware, however, that not all field types or all combinations are supported. We have tried to cover the most important field types but we are continuously adding more and improving how different field types are supported. We recommend that you test JSU with fields to see if it is compatible with your system. Our evaluation license gives you 30 days free trial.