Atlassian has an amazing platform. But I still get the same statement lobbed in at every conference.   “Jira is great but… I wish it had better reporting!” Well, what if I told you you could report on anything you wanted in Jira with Power Scripts™ for Jira. Yes, you heard that right. There are 319 “reporting” apps in the Atlassian Marketplace all with a mission to extend the functionality of JIRA to enable better reporting. However, today I am here to make a bold statement. You can save your money and solve all your complex reporting with 1 app that provides better reporting and insights across all your Portfolio, Product and Program reporting needs.  I challenge you to ask better questions and SIL® better answers.


When you infuse Jira and an Agile process together, the people, process and technology challenges become elevated and inspect and adapt exposes the weak points, enabling teams to come to terms with how to inspect and adapt in order to collectively move faster. As you start to increase velocity, your complexity with Agile grows more challenging the further and further up the enterprise you go. The only way to get to the truth lies in your ability to synthesize large amounts of JIRA issues in a simplified way. But first, why is this important to me?

  • Scrummasters want to uncover specific issue impediments related to assignees, status and more
  • Product Owners want to come in ready with the backlog prioritized and sequenced by business value
  • Functional Managers want to know the health and completeness against the larger scope of work so they can close an epic.
  • Program Managers want to know what issues got added to a sprint after the sprint began.


Standard (JQL) doesn’t necessarily solve all of your multi-level JIRA and Agile related questions above. However, with Power Scripts™ for Jira, you can solve those questions and more with custom Nested JQL reports that provide insight across all your parent and child issues. Even more, you can do that in a federated way across instances and regardless of the application version. Yes! I can finally universally query across systems and bring back a complete picture.  Let’s look at a quick and common example:


Let’s say you wanted to understand how nested issues relate to an Epic parent issue they are a part of.  What would you do today? Well, you would quickly leverage standard JQL but would run into some challenges with the “Epic Link” field as it only pulls in stories related to Epics and doesn’t take into account the subtasks that may also be associated with this parent work item. In effect you are missing critical issues that would help you understand:

  • subtasks and stories associated with Parent Epics
  • holistic issue status of nested items
  • Epics without issues
  • number of linked issues
  • how complete a Parent Epic is once we take into account subtasks.


Custom JQL Function for nested issues

Let’s build a custom report using the custom JQL Function in Power Scripts™ for Jira in order to show all issues under a given Epic including subtasks.  With this use case, you can start to think about leveraging Power Scripts™ for Jira to enhance custom reports across Dashboard gadgets, Scrum boards or Swim lanes on a Kanban board. This flexibility really opens the possibility to extend the power of reporting in JIRA.


Let’s write a JQL function that will allow us to search for nested issues. We will start with Epics, and then will find the stories that are in that epic. Finally, find the subtasks of the stories in the epic.

Step 1: Head over to the SIL® Manager and create a new script. First, we will grab all the main level Epics using a string array and the selectIssues() function.

Step 2: I will hop back over to my project and using issue search, I will build the query and can see it bring back 57 Epics in total.

Step 3: Loop through the epics returned and pull out the stories. I will create two arrays to hold the stories and subtasks we intend to grab.

Step 4: We want to grab each story in the epic and the way to do that is to use the alllinkedIssues() function. Next, we make another array to hold the results of the stories for 1 epic. We include the key and the Link type and we add the stories to the main stories array up top.

Step 5: Now loop through all the stories and grab all the subtasks using the alllinkedIssues() function once again. Then just as we did with stories, we add the tasks to the bottom.

Step 6: Now combine all three arrays, using the arrayUnion() function twice to call out epic and story and epic and tasks. Finally, use the returnEpics() function to display the results.

Now just save your changes in the SIL® Manager and head over to the Documentation page and copy the sample JQL so that you know how to call the function we just created. Then paste into your Project search and feel free to combine the script we just built with standard JQL in order to filter further.

Step 7: You should now see all the epics, stories and subtasks listed based on the script you just built. As a follow on step, you can now use the script in many different ways by replacing the project name with an argument, argv[0]. This will replace it with a parameter allowing you to use it for different projects.

As you can see, we are just scratching the surface here related to Agile custom reporting, dashboards, and filters. Looking beyond this use case, Power Scripts™ for Jira unleashed the power to solve many other top trending challenges in JIRA. See below for an active open list of challenges solved with Power Scripts™ for Jira. Get Your SIL® on!


Other Recommended Reports and Solutions Solved with Power Scripts™ for Jira:

Tagged with: , , , , ,

Categorized in: , , , ,