Group a row item based on info present into another issue

In a JIRA project, I have a “Management” issue that holds all the important info about this project, as the software factory responsible for this project, the current project phase (planning, developing, testing, conclusion), the creation date of this project and so on.
This same project have lots of Defect issues , all of them created during the testing phase.

I need a cube to show all the Defect issues status of all my projects, but I need these Defect issues grouped by the software factory that is responsible for the project. Note that one software factory may be responsible for several “ordinary” projects.
So, my rows must be something like:

image

The problem is: the information of the software factory is NOT a custom field of issue Defects , but it is a custom field of issue “Management”, instead.

Is it possible to create such grouping?

Thanks in advance.

Hi,

Although it might be possible to create the calculation by a custom measure, some preparation would be highly recommended to make the solution more efficient. The hard part is that there is no efficient way of how to access the Management issue data for each Defect.

To fix that I created a workaround to import the Management data also for the project level. I created a new data source and created additional data import from the REST API data source and mapped it to the project dimension. The REST endpoint would be the following:

<JIRA_BASE_URL>/rest/api/2/search?jql=type%20%3D%20Management%20

Now, if you have the Software factory custom field imported as dimension you can create a custom measure like this for counting Defects in the Ongoing projects:

NonZero(Count(
  Filter(Descendants([Issue].CurrentMember,[Issue].[Issue]),
    ([Measures].[Issues created],
    [Issue Type].[Defect],
    [Software factory].DefaultMember)>0
    AND
    [Project].[Project].GetMemberByKey( -- find the Software factory value for the respective project
      ExtractString([Issue].CurrentMember.KEY,"(.*)\-(.*)",1)).get('Software factory')=
    [Software factory].CurrentMember.Name
    AND
    [Project].[Project].GetMemberByKey( -- find the Project status value for the respective project
      ExtractString([Issue].CurrentMember.KEY,"(.*)\-(.*)",1)).get('Project status')=
    "Ongoing"
    )
  )
)

Note that this calculation still might have performance issues as it needs iterating over all the issues.

Kindly,

Hi, Janis,

Thanks for your help.
I really appreciate your support and I’ll follow your guidelines.
If new questions arrive, I’ll ask them.
For now, thank you very much!

Antonio.