Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×Hi,
I am attempting to use a Scripted Field to list all of the Attachments from all Linked issues.
I'm not sure how to get the information from the Linked Issues.
Here is the Code:
import com.atlassian.jira.issue.attachment.Attachment; import com.atlassian.jira.issue.Issue; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.bc.project.ProjectService; def commentManager = ComponentAccessor.commentManager def projectService = ComponentAccessor.getComponent(ProjectService) def attachmentManager = ComponentAccessor.getAttachmentManager() def numberAttachments = attachmentManager.getAttachments(issue).size() String s = ""; if(null != attachmentManager.getAttachments(issue)) { for(Attachment att : issue.attachments) { s = s +"<a href=\"" + "/secure/attachment/"+att.id+"/"+att.filename+"\">"+att.filename+"</a>" + "<br>"; } } return s;
Here is a Mock up Of what I would like to show in the Main Ticket. The field will show Clickable URL links to all attachments from the linked issues
Scripted Fields Attachments on Linked Issues.png
Thanks!
Something like this:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue def issueLinkManager = ComponentAccessor.getIssueLinkManager() def issues = [issue] as List<Issue> issues.addAll(issueLinkManager.getOutwardLinks(issue.id).collect {it.destinationObject}) issues.addAll(issueLinkManager.getInwardLinks(issue.id).collect {it.sourceObject}) issues.collect { issue -> issue.getAttachments().collect { att -> "<a href=\"" + "/secure/attachment/" + att.id + "/" + att.filename + "\">" + att.filename + "</a>" + "<br>" } }.flatten().join("")
I think there is a bit more to do though... permissions checking, also attachments can have chars in their filename that are not valid in URLs, etc.
Thank you,
Is there a way to restrict the Link Display Name? We have created a custom link name SD-Blocking-Link for both ways Outward and InWard.
It will only show links with the custom name SD-Blocking-Link
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I changed the script to the following -
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.IssueFieldConstants import com.atlassian.jira.issue.fields.IssueLinksSystemField import com.opensymphony.workflow.InvalidInputException import webwork.action.ActionContext def request = ActionContext.getRequest() def params = request.getParameterMap() def fieldManager = ComponentAccessor.getFieldManager() def issueLinkManager = ComponentAccessor.getIssueLinkManager() def linksSystemField = fieldManager.getField("issuelinks") as IssueLinksSystemField def issueLinkingValue = linksSystemField.getRelevantParams(params) as IssueLinksSystemField.IssueLinkingValue def issues = [issue] as List<Issue> issues.addAll(issueLinkManager.getOutwardLinks(issue.id).collect {it.destinationObject}) issues.addAll(issueLinkManager.getInwardLinks(issue.id).collect {it.sourceObject}) if (! (issueLinkingValue.linkDescription == "SD-Blocking-Link" && issueLinkingValue.linkedIssues.size() > 0)) {issues.collect { issue -> issue.getAttachments().collect { att -> "<a href=\"" + "/secure/attachment/" + att.id + "/" + att.filename + "\">" + att.filename + "</a>" + "<br>" } }.flatten().join("")}
The issue is, when it runs I am getting the following error:
java.lang.NullPointerException: Cannot invoke method getParameterMap() on null object
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue def issueLinkManager = ComponentAccessor.getIssueLinkManager() def issues = [issue] as List<Issue> issues.addAll(issueLinkManager.getOutwardLinks(issue.id).findResults { if (it.issueLinkType.name == "SD-Blocking-Link") { return it.destinationObject } null }) issues.addAll(issueLinkManager.getInwardLinks(issue.id).findResults { if (it.issueLinkType.name == "SD-Blocking-Link") { return it.sourceObject } null }) issues.collect { issue -> issue.getAttachments().collect { att -> "<a href=\"" + "/secure/attachment/" + att.id + "/" + att.filename + "\">" + att.filename + "</a>" + "<br>" } }.flatten().join("")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
When I try using the above code to test something out I get an error shown on the issues.collect line which says:
expecting '>', found '-' @line 17, column 24.
Any ideas why?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @JamieA
The last script you posted here also looks at the attachments of the current issue and displays them. Is it possible to show just the attachments of the linked issues?
Thank you!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.