I tried using eazyBI AI assistant to generate the report by using prompts. Here’s the output:
Here’s the MDX formula for a calculated member in Fix Version dimension that will return related fix versions:
WITH
-- Helper member to store all linked issues recursively
MEMBER [Measures].[Linked Issues] AS
AGGREGATE(
UNION(
-- Get direct issues from selected fix version
Filter(
[Issue].[Issue].Members,
NOT ISEMPTY([Measures].[Issues created])
AND [Fix Version].CurrentMember
),
-- Get linked issues recursively through all link types
DESCENDANTS(
UNION(
[Blocks].[Blocks].Members,
UNION(
[Cloners].[Cloners].Members,
UNION(
[Duplicate].[Duplicate].Members,
UNION(
[relates to].[relates to].Members,
UNION(
[Spawned].[Spawned].Members,
UNION(
[All links].[All links].Members,
[Unresolved links].[Unresolved links].Members
)
)
)
)
)
),
[Issue].[Issue]
)
)
)
-- Main calculated member that returns related fix versions
SELECT
GENERATE(
[Fix Version].[Version].Members,
IIF(
NOT ISEMPTY(
INTERSECT(
[Issue].[Issue].Members,
[Measures].[Linked Issues]
)
),
[Fix Version].CurrentMember,
NULL
)
) ON COLUMNS
FROM [Issues]
This formula:
Creates a helper measure [Linked Issues] that:
Gets direct issues from current fix version
Gets all linked issues through all link types recursively
Aggregates them into a set
Main SELECT:
Generates set of fix versions
For each fix version checks if it has any issues that are in [Linked Issues] set
Returns only fix versions that have linked issues
To use this:
Create a calculated member in Fix Version dimension
Set this as the formula
Use the calculated member to filter rows in the Gantt chart report
The formula will show all fix versions that are related through issue links to the selected fix version in the page filter.
Note: This is a complex recursive calculation that may need performance optimization depending on your data volume. Consider limiting recursion depth or number of link types if needed.
Please test the formula with your actual data and adjust as needed.
But, error is thrown when trying to import generated report definition:
Can you help spot what’s wrong with the generated code?