Skip to Main Content
IBM Data Platform Ideas Portal for Customers


This portal is to open public enhancement requests against products and services offered by the IBM Data Platform organization. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:


Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,


Post your ideas

Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

IBM Employees should enter Ideas at https://ideas.ibm.com



Status Submitted
Workspace Planning Analytics
Created by Guest
Created on Sep 3, 2026

Improve PAW-generated MDX for hierarchy selections

Dear team,

Summary

Improve MDX generation in Planning Analytics Workspace so that, where the resulting set semantics are unambiguous, PAW can generate simpler and more maintainable MDX instead of preserving the complete sequence of UI operations.

The goal is not to replace DRILLDOWNMEMBER in general, but to optimize the resulting set expression once the final selection is known.

Description

PAW currently translates hierarchy selections and other Set Editor interactions into a sequence of MDX operations. The generated MDX is valid, but in some cases it can be unnecessarily complex because it reflects the individual UI operations rather than the final set semantics.

For example, in the 24Retail model, the Organization hierarchy is:

Total Company
├── East Region
├── 200
├── West Region
└── Canada

If the user wants the direct children of Total Company, excluding member 200, the intended result is:

EXCEPT(
[Organization].[organization].[Total Company].Children,
{[Organization].[organization].[200]}
)

The equivalent expression using DESCENDANTS is:

EXCEPT(
DESCENDANTS(
[Organization].[organization].[Total Company],
1,
SELF
),
{[Organization].[organization].[200]}
)

For distance 1, .Children is the preferred and more concise form. DESCENDANTS(..., 1, SELF) can be used when a specific level/distance is required.

The issue is not that the MDX generated by PAW is invalid. The issue is that PAW can preserve the sequence of operations used to arrive at the result instead of recognizing a simpler semantic pattern.

Important distinction

The optimization should be based on the final result-set semantics, not on interpreting each individual click.

For example:

Total Company + Children
→ DRILLDOWNMEMBER is correct because the parent remains in the set.

Children of Total Company, excluding 200
→ EXCEPT(Parent.Children, {200}) is a more direct representation.

Therefore, this request is not proposing a global replacement of DRILLDOWNMEMBER.

Proposed enhancement

Introduce a semantic optimization step for generated MDX where the resulting set can be represented safely by a simpler expression.

Examples of recognizable patterns could include:

  • Direct children of a parent

  • Direct children of a parent minus one or more excluded members

  • Descendants at a specific distance/level

  • Keep-of-level combined with exclusions

  • Other cases where the final result can be expressed more directly without enumerating the remaining members

For example, instead of retaining a verbose operation sequence, PAW could recognize:

Parent.Children - {Excluded Members}

and generate:

EXCEPT(
[Parent].Children,
{[Excluded Members]}
)

where the semantics are unambiguous.

Implementation consideration

This optimization does not necessarily need to happen after every individual Set Editor click.

Possible points for optimization include:

  • when leaving the Set Editor

  • when saving a Named Set or Subset

  • when finalizing the MDX expression

  • through an explicit "Simplify MDX" option

This would allow PAW to preserve the interactive editing model while still producing cleaner MDX at an appropriate point.

Round-trip consideration

PAW MDX is not only an output format; it can also represent the state of an interactive view or Set Editor.

A semantic simplification could therefore make it more difficult for PAW to reconstruct the exact UI state from the generated expression.

If a simplified expression cannot be reliably mapped back to the interactive Set Editor state, PAW should retain the original expression or treat the simplified expression as custom MDX rather than breaking the editing experience.

Acceptance criteria

  1. If the resulting set is equivalent to Parent.Children minus one or more explicitly excluded members, PAW should be able to generate a concise equivalent expression such as EXCEPT(Parent.Children, {...}).

  2. PAW should not unnecessarily enumerate all remaining sibling members when a dynamic set expression can represent the same result.

  3. Additional members subsequently added below the parent should be included dynamically when the generated expression is based on .Children or an equivalent dynamic construct.

  4. DRILLDOWNMEMBER should remain available and be retained when the parent itself is intentionally part of the resulting set.

  5. The simplified expression must produce exactly the same resulting member set as the original expression.

  6. The optimization should work with multiple excluded members, not only a single exclusion.

  7. Where ordering is relevant, simplification should preserve the expected member order or explicitly use/document the appropriate ordering semantics.

  8. If PAW cannot safely reconstruct the interactive state from the simplified expression, it should fall back to the original expression or clearly treat the expression as custom MDX.

Expected benefits

  • Simpler and more readable generated MDX

  • Easier troubleshooting and maintenance

  • Less unnecessarily verbose MDX

  • More robust expressions based on hierarchy semantics rather than enumerated results

  • Better alignment between the generated MDX and the resulting set

The key principle is:

Optimize the result set, don't reinterpret every click.

The challenge of determining user intent from individual UI interactions remains non-trivial. However, once the resulting selection matches a well-defined semantic pattern, PAW should be able to recognize and represent that pattern more efficiently.

Thanks in advance.

With best regards,
Vitalij

Needed By Yesterday (Let's go already!)
  • Guest
    Sep 3, 2026

    +1

    I strongly support this idea.

    PAW generates valid MDX, but the resulting expressions can sometimes be much more complex than necessary because they reflect the individual Set Editor operations rather than the semantics of the final selection.

    The distinction described in the example is particularly relevant: DRILLDOWNMEMBER makes sense when the parent should remain in the result, while a selection such as “children of a parent, excluding specific members” can be represented much more directly using Children or DESCENDANTS(..., 1, SELF) together with EXCEPT.

    This would make the generated MDX easier to understand and maintain, while also preserving the dynamic nature of hierarchy-based selections. For deeper hierarchy selections, DESCENDANTS also provides a natural way to express the intended level or distance without enumerating the resulting members.

    I especially like the proposed approach of optimizing the final result rather than trying to reinterpret every individual user interaction. This seems like a practical way to improve the generated MDX without changing the existing Set Editor behavior.