Setting IsAggregatable to False on dimension attributes causes problems

  • I have a fairly simple dimension with 4 attributes all linked to a surrogate key. It doesnt make sense for any of the attributes to have an All member so I have set IsAggregatable to False on each of them. If I browse the dimension using Visual Studio everything looks fine, but when I include the dimension in a cube I can only access the first member in the dimension for any attribute.

    I read on the web that I should set the DefaultMember but it only ever gives me errors when trying to process the dimension saying that the dimension object was not found in the cube, so I removed the setting of DefaultMember, apparently SSAS will default it to the first member if it is not set.

    Another strange thing, if I set 3 out of the 4 attributes to have IsAggregatable=True, then on the 1 remaining False attribute it works fine as expected without an All level, and showing me all members, but the other 3 attributes only show the All level and the first member. So at the moment I can only get things to work how I expect if I have just one attribute on the dimension.

    Has anyone else experienced this and worked out a solution to fix it?

  • I don't claim to be an expert on this, but quite a while back I learned that you could only ever have one attribute in a single dimension with the property IsAggregatable = False. My problem at that time (3 years ago?) was that the results in our queries were not comprehensive.

    For example, if 2 attributes were set to IsAggregatable = FALSE then it would use a default member's property. Well, the members in your primary dimension/hierarchy don't all belong to the default members of the attributes you don't want to aggregate.

    So, I have found that to obtain the correct results, I need to leave the IsAggregatable = TRUE set which in turn means that when these attributes are not being used all data will be selected within the primary dimension/hierarchy.

    The reason I am responding to your issue is that I wanted to see if this has changed. Basically, I have a few member properties that are essentially altenate descriptions. I don't want these added into the aggregations; I just want these to display when the user wants to see the alternate description in the front end.

    So far, here's what I have found works for me:

    1) Set property AttributeHierarchyEnabled = False

    2) Set property AttributeHierarchyVisible = False

    3) Set property AttributeHierarchyOrdered = False

    4) Leave property IsAggregatable = TRUE

    This means that an 'ALL' member will be built and then this attribute will not filter out any results when it is not being used. I read in Microsoft documentation that the AttributeHierarchyOrdered affects processing time and I don't think there is any reason for me to have the attribute sequenced since it is a hidden attribute. I'm not sure if this is going to affect me adversely, but I guess I'll find out.

    I hope I have helped you.

    DaveD

  • Thanks for the reply. Yes, like you the other attributes in my dimension are alternate descriptions for the front end. What I don't get about your reply is if I set the AttributeHierarchyEnabled and AttributeHierarchyVisible properties to false, then how do your users ever select the "hidden" attributes to see the alternative description?

  • Usually aggregatable = False is used for hanger dimensions. Even if you think operationally it doesn't make sense to sum the tems, from the cube standpoint, this may not make technical sense. I would need more detail to be sure, but as you appear to be discussing a real dimension based on real data, I would leave it at the default setting. Feel free to provide more information if you think I'm missing something.

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply