Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to create Reference attachmente parent Issue on subtask

Stefano Rosario Aruta
Contributor
January 24, 2019 edited


someone can help me here below  i dont want copy attachment but i want create a link of the origina attachment, so i want that sub-task have a attahcment of  issue parent  and dont copy attachment. 

can you help me with this(it is a POST-FUNCTION on transaction)?

 

1 answer

1 accepted

0 votes
Answer accepted
Stefano Rosario Aruta
Contributor
January 25, 2019

i think that the solution is to after this script delete a attachment on issue and add a post function at last transaction in the sub-task where copy attachment on issue and after delete on sub-task

Code to create Sub-task with a single attachment:

//Code make by Henning Tietgens
import
com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import org.apache.log4j.Logger

final SUBTASK_ISSUETYPE_NAME = "Sub-task"

if (issue.issueType.name != SUBTASK_ISSUETYPE_NAME) {
def issueFactory = ComponentAccessor.issueFactory
def constantsManager = ComponentAccessor.constantsManager
def issueManager = ComponentAccessor.issueManager
def subTaskManager = ComponentAccessor.subTaskManager
def attachmentManager = ComponentAccessor.attachmentManager

def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def subTaskId = constantsManager.allIssueTypeObjects.find{it.name == SUBTASK_ISSUETYPE_NAME}.id

issue.attachments.eachWithIndex{att, i ->

def newSubTask = issueFactory.getIssue()
newSubTask.setSummary("Sub-Task Attachment: " + (i + 1))
newSubTask.setDescription("Sub-Task with an Attachment")
newSubTask.setParentObject(issue)
newSubTask.setReporterId(currentUser.username)
newSubTask.setProjectObject(issue.projectObject)
newSubTask.setIssueTypeId(subTaskId)

issueManager.createIssueObject(currentUser, newSubTask)
subTaskManager.createSubTaskIssueLink(issue, newSubTask, currentUser)


attachmentManager.copyAttachment(att, att.authorObject, newSubTask.key)
}
}

After Second POST-Fucntion to delete every Attachment in the main issue:

//
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.AttachmentManager

AttachmentManager attachmentManager = ComponentAccessor.attachmentManager

def attachments = attachmentManager.getAttachments(issue)
attachments.each {attachment ->;
attachmentManager.deleteAttachment(attachment)
}

And this code is for sub-task Transaction(POST_Function): this script copy Attahcment on the main after delete every attachment in this sub-task

//Code make by Henning Tietgens

import
com.atlassian.jira.component.ComponentAccessor

final SUBTASK_ISSUETYPE_NAME = "Sub-task"

if (issue.issueType.name == SUBTASK_ISSUETYPE_NAME) {
def attachmentManager = ComponentAccessor.attachmentManager
issue.attachments.each{att ->
attachmentManager.copyAttachment(att, att.authorObject, issue.parentObject.key)
attachmentManager.deleteAttachment(att)
}
}

 ok

Suggest an answer

Log in or Sign up to answer
TAGS
atlassian, jira product discovery, jpd premium, product management, idea management, product discovery, jira premium, product planning, atlassian community, product development, roadmap planning, product prioritization, feature management

Introducing Jira Product Discovery Premium ✨

Jira Product Discovery Premium is now available! Get more visibility, control, and support to build products at scale.

Learn more
AUG Leaders

Atlassian Community Events