Drill on Member for Nested Rows does not Work

Issue #877 open
Ryan Clapp created an issue

2024.02 FP1

This occurs in a a widget that has multiple glued widgets and has multiple dimensions on rows. When drilling on a dimension other than the first row the element does not expand, and Apliqo does not create the proper MDX query. For example for this view:

If you expand on data source that works and the MDX sent to the server is correct

Original MDX:

SELECT NON EMPTY  {{UNION({GENERATE(
/* For each leaf reporting line and channel type get the mapped lines; Skip combinations with blank mapping*/
{FILTER({{TM1FILTERBYLEVEL({TM1DRILLDOWNMEMBER({[reporting_line].[GMS]}, ALL, RECURSIVE)},0)}
*{TM1FILTERBYLEVEL({TM1DRILLDOWNMEMBER({[channel_type].[Retail]}, ALL, RECURSIVE)},0)}},
[mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[channel])<>''
  AND
  [mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[RevGP])<>''
  AND
  [mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[account])<>'')
},

{{
    StrToMember("[account].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[account]
        )+ "]"
    )
}*{
    StrToMember("[costcenter].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[costcenter]
        )+ "]"
    )
}*{
    StrToMember("[revgp].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[revgp]
        )+ "]"
    )
}*{
    StrToMember("[channel].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[channel]
        )+ "]"
    )
}*{
    StrToMember("[datasource].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[datasource]
        )+ "]"
    )
}})},
/* Union with an intersection that has no data to prevent default element names from being used */
{([Account].[Account].[ALTCALC], [costcenter].[costcenter].[0000], [revgp].[revgp].[0000.0000], [channel].[channel].[0000], [datasource].[datasource].[DS001])})}} ON ROWS, {{{
    {
        {
            [detailed_financials_m].[detailed_financials_m].[Amount]
        } * 
        GENERATE(
        {
            [column].[column].[01],
            [column].[column].[02],
            [column].[column].[03],
            [column].[column].[04],
            [column].[column].[05],
            [column].[column].[06]
        },

        {
        {
            StrToMember("[time_monthly].[" +
                [deck_type_config].(
                    [deck_type].[MEC Apr 24],
                    [column].CurrentMember,
                    [business_event].[Live],
                    [deck_type_config_m].[Time]
                )+ "]"
            )
        } *
        {
            StrToMember("[scenario].[" + 
                [deck_type_config].(
                    [deck_type].[MEC Apr 24],
                    [column].CurrentMember,
                    [business_event].[Live],
                    [deck_type_config_m].[Scenario]
                )+ "]"
            )
        }
    }
    )
}
}}} ON COLUMNS FROM [detailed_financials] WHERE ( [company].[company].[TC],[project].[project].[TTOT],[location].[location].[LTOT],[currency].[currency].[USD],[scale].[scale].[Millions])

After Drill (Working):

SELECT NON EMPTY  {{TM1ToggleDrillState( 
{UNION({GENERATE(
/* For each leaf reporting line and channel type get the mapped lines; Skip combinations with blank mapping*/
{FILTER({{TM1FILTERBYLEVEL({TM1DRILLDOWNMEMBER({[reporting_line].[GMS]}, ALL, RECURSIVE)},0)}
*{TM1FILTERBYLEVEL({TM1DRILLDOWNMEMBER({[channel_type].[Retail]}, ALL, RECURSIVE)},0)}},
[mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[channel])<>''
  AND
  [mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[RevGP])<>''
  AND
  [mapping].([business_event].[Live], 
  [datasource].[DS001], 
  [channel_type].CurrentMember, 
  [business].[WW_STORES], 
  [reporting_line].CurrentMember,
  [mapping_m].[account])<>'')
},

{{
    StrToMember("[account].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[account]
        )+ "]"
    )
}*{
    StrToMember("[costcenter].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[costcenter]
        )+ "]"
    )
}*{
    StrToMember("[revgp].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[revgp]
        )+ "]"
    )
}*{
    StrToMember("[channel].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[channel]
        )+ "]"
    )
}*{
    StrToMember("[datasource].[" +
        [mapping].(
            [business_event].[Live],
            [datasource].[DS001],
            [channel_type].CurrentMember,
            [business].[WW_STORES],
            [reporting_line].CurrentMember,
            [mapping_m].[datasource]
        )+ "]"
    )
}})},
/* Union with an intersection that has no data to prevent default element names from being used */
{([Account].[Account].[ALTCALC], [costcenter].[costcenter].[0000], [revgp].[revgp].[0000.0000], [channel].[channel].[0000], [datasource].[datasource].[DS001])})},
{[datasource].[datasource].[DS001]}, EXPAND_BELOW)}} ON ROWS, {{{
    {
        {
            [detailed_financials_m].[detailed_financials_m].[Amount]
        } * 
        GENERATE(
        {
            [column].[column].[01],
            [column].[column].[02],
            [column].[column].[03],
            [column].[column].[04],
            [column].[column].[05],
            [column].[column].[06]
        },

        {
        {
            StrToMember("[time_monthly].[" +
                [deck_type_config].(
                    [deck_type].[MEC Apr 24],
                    [column].CurrentMember,
                    [business_event].[Live],
                    [deck_type_config_m].[Time]
                )+ "]"
            )
        } *
        {
            StrToMember("[scenario].[" + 
                [deck_type_config].(
                    [deck_type].[MEC Apr 24],
                    [column].CurrentMember,
                    [business_event].[Live],
                    [deck_type_config_m].[Scenario]
                )+ "]"
            )
        }
    }
    )
}
}}} ON COLUMNS FROM [detailed_financials] WHERE ( [company].[company].[TC],[project].[project].[TTOT],[location].[location].[LTOT],[currency].[currency].[USD],[scale].[scale].[Millions])

When trying to drill on an outer dimension, the MDX is unchanged and the drill does not work (See video)

Comments (3)

  1. Log in to comment