Add new method: FindCurrentTupleFilter

Topics: Developer Forum
May 3, 2012 at 7:21 PM

We are currently using the FindCurrentTuple as a means to get the where clause of an MDX query that we send to SSRS as an SSAS Action of Type URL. This is done so that we can create detailed SSRS "Drill through" reports which are returned to the user with the context based on where the user clicked in Excel while browsing a cube.

The problem is that Excel has a limitation on Action URL length, this is a known issue, http://social.technet.microsoft.com/Forums/et-EE/excel/thread/dfdcb8c8-9e2d-4b31-b4bb-f15908dbcf86

As a work around we have modified the method to exclude user defined hierarchies and measures from the tuple since they are redundant in terms of what is returned based on the where clause. This makes a significant difference in URL length.

Would it be possible to include something like this in ASSP? Perhaps the current FindCurrentTuple method could have a parameter to include/ exclude user defined hierarchies and/or measures. Also see the post below which is similar to our requirement.

Thank you for all your work done in this project.

 

Currently we are using:

public static string FindCurrentTupleFilter()        {            string output = "(";            Boolean addcomma = false;
            foreach (Dimension d in Context.CurrentCube.Dimensions)            {                // skip measures                if (d.DimensionType == DimensionTypeEnum.Measure)                    continue;                                                foreach (Hierarchy h in d.AttributeHierarchies)                {                 //skip user defined hierarchies                    if (h.HierarchyOrigin == HierarchyOrigin.UserHierarchy)                        continue;
                    if ((d.DimensionType == DimensionTypeEnum.Measure || h.CurrentMember.UniqueName != h.DefaultMember) //&& h.HierarchyOrigin == HierarchyOrigin.AttributeHierarchy //&& h.CurrentMember.UniqueName.Contains("[All]") != true                        )                    {                        if (addcomma == false)                            addcomma = true;                        else                            output += ",";
                        output += h.CurrentMember.UniqueName;                    }                }            }            output += ")";
            return output;        }

Coordinator
May 4, 2012 at 2:43 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.