Creating Member Properties

Analysis Services

Analysis Services

Creating Member Properties

Member properties are attributes associated with members. A member is an item in a dimension level. A member property is created in a dimension for the purpose of providing end users with additional information about members. The information is typically less important to end users than the members themselves and does not qualify as a level within the dimension. For example, if a Time dimension contains Year, Month, and Day levels, and the data of the dimension table spans one full calendar year, the Month level contains 12 members: January through December. If the data of the Time dimension table spans two full calendar years, the Month level contains 24 members. Thus, members need not be unique values within a dimension level. Member properties are optional components of dimensions and cubes.

A member property is an attribute associated with a member. For example, each member of the Month level has an associated Boolean member property called Bonus Month. It records whether bonuses are awarded during the month because they are not awarded at a regular frequency. In months in which bonuses are awarded, Bonus Month equals –1, or TRUE; in the remaining months, Bonus Month equals 0, or FALSE.

A member property is stored in a column in the same table as the dimension level containing the members. For example, Bonus Month is stored in the same table as the Month level.

You can create a member property by inserting it into the level that contains the members with which the member property is associated. For example, Bonus Month is defined inside the Month level.

For example, before Bonus Month existed as a member property, it existed as a column in the Time dimension table. End users requested that Bonus Month be added to some cubes. However, it was inappropriate to add Bonus Month as a level because it is not a natural component of the Time dimension hierarchy. If Bonus Month had been added as a level, end users would have drilled down, for example, from Month to Bonus Month to Day, experiencing an awkward and confusing presentation. Because Bonus Month is associated with members of the Month level, the solution was to create the Bonus Month member property by inserting it in the Month level. Consequently, end users can now display Bonus Month values, for example, by right-clicking Month values, and the basic Time dimension hierarchy is undisturbed.

Before you create a member property in a dimension level with a source column containing nonunique values, you must ensure that each member in the level can have only one value for each member property. Otherwise, member property values will be incomplete and misleading because only one value can be displayed for each member. For example, values in the source column of the Salesperson level are not unique. Each Salesperson can have only one Manager, so Manager is a valid member property in the Salesperson level. However, a Salesperson can work in multiple Regions, so Region is not a valid member property. If Region were defined as a member property, it would display only one Region to end users, even for Salespersons who work in multiple Regions.

You can create member properties in both private dimensions and shared dimensions. To create a member property in a private dimension, you can create them in Cube Editor for the cube containing the private dimension, or you can use the Decision Support Objects (DSO) library in a client application that creates an object of ClassType clsMemberProperty. To create a member property in a shared dimension, use Dimension Editor.

To create a member property in a shared dimension