Numeric Range Attributes
Sometimes you can use one Essbase load rule to build numeric-range attribute dimensions and associate the members of the base dimension with the ranges. But if range sizes are different, or if there are multiple levels in the attribute dimension, then you must build associations in a secondary step.
In the following situations, you must use two load rules: one to build the attribute dimension and one to associate the attributes with the appropriate members of the base dimension:
-
When the range size is different for different members.
For example, you can define small ranges for towns and cities with smaller populations, larger ranges for mid-sized and larger cities, and ranges greater than 18,000,000 for metropolitan areas.
-
When the ranges are members of a multilevel attribute dimension.
For example, the Population attribute dimension can have level 1 members that categorize the population ranges as Towns, Cities, and Metropolitan Areas, and level 0 members that represent the ranges.
The Population attribute dimension shown below demonstrates both situations. Population is a multilevel, numeric attribute dimension, in which the level 0 members represent ranges of different sizes.
Figure 14-7 Numeric Attribute Dimension with Different-Sized Ranges

You must use one load rule to build the Population dimension, and another rule to associate the Population dimension members as attributes of members of the base dimension.
Build Attribute Dimensions that Accommodate Ranges
To build an Essbase attribute dimension that accomodates range attribute members, first, create a cube that uses the generation, level, or parent-child build method.
In the dimension build rule, specify the name of the attribute dimension and its associated base dimension, and the fields for building the attribute dimension.
Note:
In later builds, you cannot insert attribute members between existing members.
In the outline properties, specify the desired behavior of all numeric range attributes in your cube. Numeric range attributes can represent tops of ranges (upper bound inclusive) or bottoms of ranges (lower bound inclusive).

To use the generation method to build the outline with range attributes, you must sequence the source data records in ascending sequence, based on the numeric attribute value. Define the fields in the rule as shown below, where smallest towns are the first records, and large metropolitan areas are at the end.
The following example is based on Sample Basic, exported to an application workbook using the Generation build method, and re-imported.
Figure 14-8 Rule for Building a Numeric Attribute Dimension with Ranges

Associate Base Dimension Members with Their Range Attributes
After you build numeric attribute dimension ranges, you need a rule to associate the members of the base dimension with their correct attributes. If you add or rename range attributes, to ensure that associations are correct, rerun the dimension build and associate the base members with the changed attributes.
The source data includes fields for the members of the base dimension and fields for the data values that Essbase uses to associate the appropriate Population attribute.
Define the rule as shown below.
Figure 14-9 Rule for Associating Numeric Range Attributes

The attribute dimension association field (for example, Field 3: Market, Attribute Dimension, Population), places the attribute members of the preceding field within a range.
Note:
The rule includes a city, Boston, whose population of 3,227,707 is outside the ranges of the attribute dimension, which extends only to 3,000,000. To allow for values in the source data that are outside the ranges, enter a range size, such as 1000000. Essbase uses the range size to add members to the attribute dimension above the existing highest member or below the existing lowest member, as needed.
Caution:
After you associate base members with attributes, if you add or rename any attributes, you may invalidate associations. Consider an example where numeric range attributes are defined as "Tops of ranges" (upper bound inclusive) and an attribute dimension contains members 100, 200, 500, and 1000. A base dimension member with the value 556 is associated with the attribute 1000. If you rename a range attribute from 500 to 600, the base dimension member with the value 556 now has an invalid association – it is associated with the attribute 1000, when it should be associated with the attribute 600. To fix this, rerun the dimension build and associate the base members with the changed attributes.
Ensure the Validity of Associations
To ensure the validity of numeric range attribute associations, you must select the correct Essbase dimension building options and perform the builds in the proper sequence. Adding or changing attributes may require fixes to associations. If you want to use range aliases, add them in a separate dimension build.
Adding or Changing Members of the Attribute Dimension: After you associate members of a base dimension with their numeric attribute ranges, if you manually insert new members or rename existing members in the attribute dimension, ensure that associations between attributes and base members are correct by performing one of the following tasks:
-
Rerun the dimension build that associates the base members with the changed attribute dimension.
-
Use the Outline Editor to manually review and fix, as needed, the associations of all base dimensions.
Deleting Members from the Attribute Dimension: You can delete all members of an attribute dimension so that you can rebuild the dimension with new data.
Adding Members to the Base Dimension: You can use the same load rule to add new members to the base dimension and to associate the new members with their numeric range attributes simultaneously. Provide a value for the range size.
If Essbase encounters a base dimension value that is greater than the highest attribute member by more than the range size or is lower than the lowest attribute member by more than the range size, it creates members in the attribute dimension to accommodate the out-of-range values.
For example, assume the numeric range attributes are defined in the outline properties as "Tops of ranges" (upper bound inclusive). This means that a range attribute value represents the top number of its range. In the sample illustration, the Population attribute dimension is 3000000. If the source data includes a record with the population 4,420,000, and the range size is 1000000, Essbase adds two members to the attribute dimension, 4000000 and 5000000, and associates the base member with the value of 4,420,000 with the 5000000 attribute.
Figure 14-10 Dynamically Adding Attribute Range Members

When you add range attributes and base dimension members simultaneously, Essbase does not create aliases for the new attributes. If you want aliases that describe the range values for the new members of the attribute dimension, you must add the aliases in a separate dimension build.