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.