How to get a indirectly linked issue

Hi all,

so I'm very new to Jira Groovy and I have following problem:

In my JIRA project I have Services which are implemented by Features which are implemented by Feature Increments. So I want to create a scripted field which shows the summary of the Service the Issue belongs to and I came up with he following code:



    import com.atlassian.jira.component.ComponentAccessor
    import com.atlassian.jira.issue.link.IssueLinkManager
    import com.atlassian.jira.bc.project.component.ProjectComponent
    import com.atlassian.jira.issue.Issue

    //The current user is needed as a parameter in some functions.
    def authenticationContext=ComponentAccessor.getJiraAuthenticationContext()
    def user=authenticationContext.getLoggedInUser()
    def linkManager = ComponentAccessor.getIssueLinkManager()

    //Get all issues that are linked via "implements".
    def linkedOfType =     linkManager.getLinkCollection(issue,user).getOutwardIssues("Implements")

    //When the issue implements something.
    for(issue in linkedOfType){
    
        //If the linked issue is a feature get this feature and search its     linked issues for service and return the summary of this service.
        if (issue.getIssueType().getName().toString().equals("Feature_Tile")){
       
          }    
    
        //If the linked issue is a service return the summary of this service.    
        if (issue.getIssueType().getName().toString().equals("Service")){
           String serviceName = issue.summary
           return serviceName
        }
    } 


The problem is now, that the field works fine if the issue implements a Service, but not if the issue implements a Feature, because I don't know how to get the linked Issues of this feature to search them for Services.
So my Question is: how can I get the Service if my issue only implements a Feature?

1 answer

0 vote
Micky Caritte Community Champion Dec 07, 2017

Hi Tina,

I think you should re-use your code from the Feature level to the service level,  something like:

...
//
If the linked issue is a feature get this feature and search its     linked issues for service and return the summary of this service.
        if (issue.getIssueType().getName().toString().equals("Feature_Tile")){
        def linkedService = linkManager.getLinkCollection(issue,user).getOutwardIssues("Implements")
for(iss in linkedService){
if (iss.getIssueType().getName().toString().equals("Service")){
return iss.summary
}
}
          }    
...

Let us know if it works!

Cheers

Hi Micky,

thanks for your answer!

I think that would probably work fine, but I already managed to solve my problem, by rewriting my code and using a while loop with a switch in it.

Micky Caritte Community Champion Dec 11, 2017

Great!

Have a great day.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Jira

Mission-critical battery manufacturer fulfills FAA software requirements with Commit Policy Plugin

EaglePicher Technologies is a leading manufacturer of battery systems for diverse industries like defense, aviation, space or medical. As they operate in highly regulated industries, keeping a clear ...

178 views 0 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you