Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

How to script only linked issues in a custom email using scriptrunner post function

I'm attempting to pull only the linked issues and not subtasks into a custom email using scriptrunner.

Found this script from a different post:

<ul>
<%

def outwardlinks = com.atlassian.jira.component.ComponentAccessor.getIssueLinkManager().getOutwardLinks(issue.getId())

def oCounter=0
def iCounter=0

// Check for Outward Links...
if (outwardlinks)

for (id in outwardlinks) {
def linkedissueKey = com.atlassian.jira.component.ComponentAccessor.getIssueManager().getIssueObject(outwardlinks[oCounter].destinationId).key
def linkedissueSummary = com.atlassian.jira.component.ComponentAccessor.getIssueManager().getIssueObject(outwardlinks[oCounter].destinationId).summary
def linkedissueStatus = com.atlassian.jira.component.ComponentAccessor.getIssueManager().getIssueObject(outwardlinks[oCounter].destinationId).status.name

out << "<li><a href='https://jira.domain.com/browse/"+linkedissueKey+"'>"+linkedissueKey+"</a> "
out << "("+linkedissueStatus+"):"
out << linkedissueSummary+"</li><br>"

oCounter ++
%>
</ul>

 

...it works, but it is still pulling ALL "linked" issues...subtasks as well as linked tickets from other projects.

How can this be tweaked to only pull linked issues?

Thanks

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Aidan Derossett [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
Oct 26, 2018

Hey again! :D

I think you can get the subtasks with a little bit more finesse. ;D

You should be able to get an issue's subtasks directly from the Issue object by doing a call on it like "issue.getSubTaskObjects()". To put this into practice, I coded up an example of how you might want to go about utilizing this when sending a custom email. The finished project looks like this:

Screen Shot 2018-10-26 at 5.17.05 PM.png

Basically, the code in the Condition and Configuration section gets the subtasks from your issue and creates a Map of information about the subtask that you can use; which I've done in the Email template. 

I'll go ahead and place the above lines of code in some code blocks so you can easily copy and paste them for testing:

Condition and Configuration:

import com.atlassian.jira.component.ComponentAccessor

def subtasks = issue.getSubTaskObjects()

//Get values from each subtask
def subtaskInfoList = [:]
subtasks.each{
subtaskInfoList.put((it.key), [it.status.name, it.summary])
}

//Add those values to the configuration to use in the template below
config.subtasks = subtaskInfoList
return true

Email template:

Issue: 
${issue.key}

Subtasks:
<%
subtasks.each{ key, value ->
out << "$key: Status - ${value[0]} \n"
}
%>

Try playing around with that jazz and let me know how it goes!

Hope that helped! :)
Aidan

TAGS
AUG Leaders

Atlassian Community Events