Mapping Members in Partitions

To create a partition, Essbase must be able to map all shared data source members to data target members. Oracle recommends that data source member names and data target member names are the same to reduce maintenance requirements for the partition, especially when the partition is based on member attributes.

If the data source and data target contain the same number of members and use the same member names, Essbase automatically maps the members. You need only validate, save, and test the partitions. If Essbase cannot map automatically, you must map manually.

Map data source members to data target members in any of the following ways:

  • Enter or select member names manually. (When you type a duplicate member name, type the qualified member name and enclose it in double quotation marks; for example, “[State].[New York]”

  • Import the member mappings from an external data file.

  • Create area-specific mappings.

Topics in this section:

Mapping Members with Different Names

If the data source outline and data target outline contain different members, or if the members have different names in each outline, you must map the data source members to the data target members. In the following example, the first two member names are identical, but the third member name is different:

Source       Target
Product      Product
   Cola         Cola
Year         Year
   1998         1998
Market       Market
   East         East_Region

Because you know that East in the data source corresponds to East_Region in the data target, map East to East_Region. Then, all references to East_Region in the data target point to East in the data source. For example, if the data value for Cola, 1998, East is 15 in the data source, the data value for Cola, 1998, East_Region is 15 in the data target.

Mapping Data Cubes with Extra Dimensions

The number of dimensions in the data source and data target may vary. The following example illustrates a case where there are more dimensions in the data source outline than in the data target outline:

Source       Target
Product      Product
   Cola         Cola
Market       Market
   East         East
Year
   1999
   1998
   1997

You can map member 1997 of the Year dimension to Void in the data target. First, define the areas of the data source to share with the data target:

Source                        Target
@DESCENDANTS(Market), 1997    @DESCENDANTS(Market)

Then, map the data source member to Void in the data target:

Source       Target
1997         Void

“Void” is displayed automatically; manually entering “Void” may cause errors.

If you do not include at least one member from the extra dimension in the area definition, you will receive an error message when you attempt to validate the partition.

Note:

When you map a member from an extra dimension, the partition results reflect data only for the mapped member. In the above example, the Year dimension contains three members: 1999, 1998, and 1997. If you map member 1997 from the data source to the data target, the partition results reflect Product and Market data only for 1997. Product and Market data for 1998 and 1999 will not be extracted.

The following example illustrates a case where the data target includes more dimensions than the data source:

Source       Target
Product      Product
   Cola         Cola
             Market
                East
Year         Year
   1997         1997

In such cases, first define the shared areas of the data source and the data target:

Source                   Target
@IDESCENDANTS(Product)   @IDESCENDANTS(Product), East

You can then map member East from the Market dimension of the data target to Void in the data source:

Source       Target
Void         East

If member East from the Market dimension in the data target is not included in the target areas definition, you will receive an error message when you attempt to validate the partition.

Mapping Shared Members

When you create a replicated or transparent partition using a shared member, use the prototype member names in the mapping. Essbase maps the prototype member from the data source.

Mapping Attributes Associated with Members

You must accurately map attribute dimensions and members from the data source to the data target to ensure that the partition is valid.

You can map attributes in transparent partitions. See Attributes in Partitions.

In the following example, the outline for the data source contains a Product dimension with a member 100 (Cola). Children 100-10 and 100-20 are associated with member TRUE of the Caffeinated attribute dimension, and child 100-30 is associated with member FALSE of the Caffeinated attribute dimension.

The data target outline has a Product dimension with a member 200 (Cola). Children 200-10 and 200-20 are associated with member Yes of the With_Caffeine attribute dimension, and child 200-30 is associated with No of the With_Caffeine attribute dimension.

First define the areas to be shared from the data source to the data target:

Source               Target
@DESCENDANTS(100)    @DESCENDANTS(200)
@DESCENDANTS(East)   @DESCENDANTS(East)

Then map the attributes:

Source               Target
100–10               200–10
100–20               200–20
100–30               200–30
Caffeinated          With Caffeine
Caffeinated_True     With_Caffeine_True
Caffeinated_False    With_Caffeine_False

If you map attribute Caffeinated_True to attribute With_Caffeine_No, you receive an error message during validation. You must associate caffeinated cola from the data source to caffeinated cola in the data target.

An attribute dimension or an attribute member can exist in the outline of the data source but not in the outline of the data target, or in the outline of the data target but not in the outline for the data source. For example:

Source         Target
Caffeinated
   True
   False

In such cases, you have the following choices:

  • Create the Caffeinated attribute dimension and its members in the outline of the data target and associate them with the Product dimension. You can then map the attributes from the data source to the data target.

  • Map the Caffeinated attribute dimension in the data source to Void in the data target.

Creating Advanced Area-Specific Mappings

If you can map all of the members in your data source to their counterparts in the data target using standard member mapping, you need not perform advanced area-specific mapping.

If, however, you need to control how Essbase maps members at a more granular level, you may need to use area-specific mapping, which maps members in one area to members in another area only in the context of a particular area map.

Use area-to-area mapping to do the following:

  • Map data differently depending on where it is coming from.

  • Map multiple members in the data source to a single member in the data target.

Because Essbase cannot determine how to map multiple members in the data source to a single member in the data target, you must logically determine how to divide your data until you can apply one mapping rule to that subset of the data. Then use that rule in the context of area-specific mapping to map the members.

Example 11-1 Example 1: Advanced Area-Specific Mapping

The data source and data target contain the following dimensions and members:

Source       Target
Product      Product
   Cola         Cola
Market       Market
   East         East
Year         Year
   1998         1998
   1999         1999
             Scenario
                Actual
                Budget

The data source does not have a Scenario dimension. Instead, it assumes that past data is actual data and future data is forecast, or budget, data.

You know that 1998 in the data source should correspond to 1998, Actual in the data target and 1999 in the data source should correspond to 1999, Budget in the data target. So, for example, if the data value for Cola, East, 1998 in the data source is 15, the data value for Cola, East, 1998, Actual in the data target should be 15.

Because mapping works on members, not member combinations, you cannot simply map 1998 to 1998, Actual. Define the area (1998 and 1998, Actual) and then create area-specific mapping rules for that area.

Because the data source does not have Actual and Budget members, you also must map these members to Void in the data target.

Example 11-2 Example 2: Advanced Area-Specific Mapping

You also can use advanced area-specific mapping if the data source and data target are structured very differently but contain the same kind of information.

This strategy works, for example, if your data source and data target contain the following dimensions and members:

Source       Target
Market       Customer_Planning
   NY             NY_Actual
   CA            NY_Budget
                 CA_Actual
                 CA_Budget
Scenario
   Actual
   Budget

You know that NY and Actual in the data source should correspond to NY_Actual in the data target and NY and Budget in the data source should correspond to NY_Budget in the data target. So, for example, if the data value for NY, Budget in the data source is 28, the data value for NY_Budget in the data target should be 28.

Because mapping works on members, not member combinations, you cannot simply map NY, Actual to NY_Actual. Define the area (NY and Actual, and NY_Actual) and then create area-specific mapping rules for that area.

Because the data target does not have NY and CA members, you must also map these members to Void in the data target so that the dimensionality is complete when going from the data source to the data target.