This is the documentation of JSU for Jira Cloud. If you are using JSU on Jira Server/Data Center, see our JSU Server/Data Center documentation.
On this page: |
Description
This post function will copy attachments from/to all related issues. You can define which issue should be a source and which is a destination. Any number of attachments can be copied to the related issue(s).
The Copy / Move Attachments post funtion is available from JSU 2.8.0
Configuration
Post function options
Precondition
Issue Relation
On this page: |
---|
Most of JSU's workflow post functions have the option to define the scope of related issues. For example, instead of copying a field within an issue for a post function, you can copy it to a subtask.
Types of issue relations
Related issues are identified by one of the following Jira concepts:
Issue link: You can choose the link type to define which issues will be modified by the operation. If the post function includes the link type is ANY option, the operation will be performed on any linked issues.
Parent / Sub-Task: The related issue is either the parent or a subtask.
Epic / Issue in Epic: The other issue is either an epic related to an epic link, or it is part of an epic. This is only applicable if you have Jira Software installed.
JQL: A JQL query will be executed to retrieve the issues the post function will modify. 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
Issue in Transition refers 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, the issue that triggered a workflow condition/validator/post function to be executed.
Source and destination
For some post functions, you can choose whether the issue in transition serves as the source or the 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. In contrast, 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 post functions do not have a source and destination; you simply define the issue relation that applies to the post function. For example, the Create a Linked Issue post function creates a new issue and then connects it through an issue relation to the issue in transition.
Related issues limitations
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 unclear from which issue the value should be read. The current implementation will simply select one of them and ignore the rest.
If you use the Create a Linked Issue post function to create a new subtask, you must also configure the post function to create the new issue as an issue type of a subtask. The target project must be the same as the one for the issue in transition.
Perform As User
When choosing a user account to run a post function, the specified user account must have the appropriate permissions to perform the actions, such as creating an issue or adding a comment.
If JSU determines that the specified user has insufficient permissions, it executes the rule using the JSU Add-on user. This is displayed in the Execution Log as a success and includes a warning.
JSU can’t determine if the specified user is missing necessary Jira global permissions. In this case, the rule runs using the specified user. If the run encounters a Jira error, it will fail. This is displayed in the Execution Log with a permission error.
JSU Add-On User (default)
The JSU Add-On User account is automatically added to an instance when JSU is installed and already has the required permissions to perform all actions across JSU post functions. If the permissions haven’t been manually removed from the JSU Add-On User, it should not impact its success as the Perform as User instead of another account.
If you don't specify a different option, the transition on the related issue is performed as the JSU Add-On User with its associated permissions. This option is useful for testing, and you can confirm the action in your issue activity.
When the JSU Add-On User makes changes to issues, you can see the changes in the Activity section of the issue:
Initiating User
The transition on the related issue is performed with the same user who triggered this post function on the origin issue. That user must have the necessary permissions on the related issue. In some restrictive setups, a user might not be allowed to perform the action or might not have permission to view the relevant project.
Choose user
Use this option to specify a different user account that has been granted the necessary permissions. Usually, this user account is assumed to be only technical (impersonation), with broad permissions, and not used by individuals to log into Jira.
In combination with the Permission condition in native Jira, or the User Is In Any Users condition from JSU, you can hide a transition from all users that do not have permission to execute it.
Initiating/Specified User
If you configure your post function for either the initiating user or a selected user, the relevant issue fields must be included in the associated issue screen.
For example, if you create a rule that updates a field in a related issue, the field must be included in the target issue Edit screen. Similarly, if you define a rule that creates a new issue, or copies a field to a new issue, the field must be included in the Create screen.
Copy attachment from/to any related issue
You have different options for defining define which issue/s will be treated as source/destination for attachments. Several of JSU's workflow modules provide the option to define the scope of the module on some related issues.
For example, instead of copying attachments from one issue to the others, you might choose to copy them from all linked issues to the issue in transition (e.g. to group all attachments within one issue)
Conditional copying attachments
Conditional copying attachment (controlled by custom field) is always only checked for issues in transition, regardless of whether the issue in transition is a source or destination.
Asynchronous Execution
There is a fundamental difference between Jira Server/Data Center and Jira Cloud in reference to post functions: In Jira Cloud, post functions of apps are executed asynchronously as a background job. This means a post function will be executed after the transition has been completed on Jira Cloud.
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.
Example
See the Copy/Move attachments use case for an example of how some of our customers use it.
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 you test JSU with fields to see if it is compatible with your system. Our evaluation license provides you with a 30-day free trial.