You are on page 1of 21

Defining Calculation Order

In This Section:

Data Storage in Data Blocks

Member Calculation Order

Block Calculation Order

Data Block Renumbering

Cell Calculation Order

Calculation Passes

Calculation of Shared Members

This chapter describes the order in which Essbase calculates a block storage database. You
should understand the concepts of data blocks and of sparse and dense dimensions (see Sparse
and Dense Dimensions) and the use of levels and generations (see Generations and Levels).

If you use dynamic calculations, see Understanding How Dynamic Calculation Changes
Calculation Order.

Calculation order does not apply to aggregate storage databases.

Data Storage in Data Blocks


Essbase stores data values in data blocks. Essbase creates a data block for each unique
combination of sparse dimension members (providing that at least one data value exists for the
combination).

Each data block contains all the dense dimension member values for its unique combination of
sparse dimension members.

In the Sample Basic database, the Year, Measures, and Scenario dimensions are dense; the
Product and Market dimensions are sparse:

Figure 114. Dimensions from the Sample Basic Database


Note:

Sample Basic also contains five attribute dimensions. These dimensions are sparse, Dynamic
Calc, meaning that attribute data is not stored in the database. See Working with Attributes.

Essbase creates a data block for each unique combination of members in the Product and Market
dimensions (providing that at least one data value exists for the combination). For example, it
creates one data block for the combination of 100-10, New York. This data block contains all the
Year, Measures, and Scenario values for 100-10, New York.

Figure 115. Product and Market Dimensions from the Sample Basic Database

In Essbase, member combinations are denoted by the cross-dimensional operator. The symbol
for the cross-dimensional operator is -> (a hyphen followed by a greater than symbol). So 100-
10, New York is written 100-10 -> New York.

You can categorize data blocks as:

Input
These blocks are created by loading data to cells in a block. Input blocks can be created
for (1) sparse, level 0 member combinations or (2) sparse, upper level member
combinations, when at least one of the sparse members is a parent level member. Input
blocks can be level 0 or upper level blocks.

Noninput

These blocks are created through calculations. For example, in Sample Basic, the East ->
Cola block is created during a sparse calculation process (that is, the block did not exist
before calculation).

Level 0

These blocks are created for sparse member combinations when all of the sparse
members are level 0 members. For example, in Sample Basic, New York -> Cola is a
level 0 block because New York and Cola are level 0 members of their respective sparse
dimensions. Level 0 blocks can be input or noninput blocks; for example, a level 0
noninput block is created during an allocation process, where data is loaded at a parent
level and then allocated down to level 0.

Upper level

These blocks are created for sparse member combinations when at least one of the sparse
members is a parent level member. Upper level blocks can be input or noninput blocks.

See Generations and Levels and Data Blocks and the Index System.

Member Calculation Order


Essbase calculates a database at the data block level, bringing one or more blocks into memory
and calculating the required values within the block. Essbase calculates the blocks in order,
according to their block numbers. The database outline tells Essbase how to order the blocks.
Within each block, Essbase calculates the values in order according to the hierarchy in the
database outline. Therefore, overall, Essbase calculates a database based on the database outline.

When you perform a default calculation (CALC ALL) on a database, Essbase calculates the
dimensions in this order:

If both a dimension tagged as accounts and a dimension tagged as time exist, and if
formulas are applied to members on the accounts dimension, Essbase calculates in this
order:
1. Dimension tagged as accounts
2. Dimension tagged as time
3. Other dense dimensions (in the order they are displayed in the database outline)
4. Other sparse dimensions (in the order they are displayed in the database outline)
Otherwise, Essbase calculates in this order:
1. Dense dimensions (in the order they display in the database outline)
2. Sparse dimensions (in the order they display in the database outline)

Note:

Attribute dimensions, which are not included in the database consolidation, do not affect
calculation order. See Working with Attributes.

In the Sample Basic database, the dimensions are calculated in this order: Measures, Year,
Scenario, Product, and Market.

You can override the default order by using a calculation script. See Developing Calculation
Scripts.

Understanding the Effects of Member Relationships

The order of calculation within each dimension depends on the relationships between members
in the database outline. Within each branch of a dimension, level 0 values are calculated first
followed by their level 1, parent value. Then the level 0 values of the next branch are calculated
followed by their level 1, parent value. The calculation continues in this way until all levels are
calculated.

Figure 116, Year Dimension from the Sample Basic Database shows the Year dimension from
the Sample Basic database. The calculation order is shown on the left. This example assumes
that the parent members are not tagged as Dynamic Calc. See Dynamically Calculating Data
Values.

Figure 116. Year Dimension from the Sample Basic Database


Jan is the first member in the first branch. Jan has no formula so it is not calculated. The same
applies to Feb and Mar, the other two members in the branch.

Essbase calculates Qtr1 by consolidating Jan, Feb, and Mar. In this example, these members are
added.

Essbase then calculates the Qtr2 through Qtr4 branches in the same way.

Finally, Essbase calculates the Year member by consolidating the values of Qtr1 through Qtr4.
These members are added.

Determining Member Consolidation

You can choose how Essbase consolidates members by applying any calculation operator (+, -, /,
*, %, ~, ^) to the members in the database outline.

If an accounts member has a time balance tag (First, Last, or Average), Essbase consolidates it
accordingly. See Calculating First, Last, and Average Values.

If a parent member has a label only tag, Essbase does not calculate the parent from its children.

If a member has a ~ tag, Essbase does not consolidate the member up to its parent.

If a member has a ^ tag, Essbase does not consolidate the member in any dimension.

Note:

If you use dynamic calculations, Essbase may use a different calculation order. See Calculation
Order for Dynamic Calculation.

Ordering Dimensions in the Database Outline

To ensure the required calculation results, consider the calculation order of the dimensions in the
database outline if you do either of these tasks:

Use calculation operators to divide (/), multiply (*), or calculate percentages (%) for
members in the database outline.
Place formulas on members in the database outline.

You do not need to consider calculation order if you use only calculation operators to add (+)
and subtract (–) members in the database outline and you do not use formulas in the outline.

Placing Formulas on Members in the Database Outline


If you place formulas on members in the database outline, consider the calculation order of the
dimensions. A formula that is attached to a member on one dimension may be overwritten by a
subsequent calculation on another dimension.

For example, the Sample Basic database has a Measures dimension, tagged as accounts, and a
Year dimension, tagged as time. Measures is calculated first, and Year second. If you attach a
formula to Margin on the Measures dimension, Essbase calculates the formula when it calculates
the Measures dimension. Essbase then overwrites the formula when it consolidates the Year
dimension. See Cell Calculation Order.

Using the Calculation Operators *, /, and %

If you use calculation operators to multiply (*), divide (/ ), and calculate percentages (%) for
members in the database outline, consider the calculation order of the dimensions. The required
calculated values may be overwritten by a subsequent calculation on another dimension.

For example, the Sample Basic database has a Measures dimension, tagged as accounts, and a
Year dimension, tagged as time. Measures is calculated first, and Year second. If you multiply
members on the Measures dimension, the calculated results may be overwritten when Essbase
consolidates values on the Year dimension. See Cell Calculation Order.

When you use a multiplication (*), division (/ ), or percentage (%) operator to consolidate
members, carefully order the members in the branch to achieve the required result.

Figure 117. Calculation Operators in the Database Outline

In Figure 117, Calculation Operators in the Database Outline, assume that the user wants to
divide the total of Child 2 and Child 3 by Child 1. However, if Child 1 is the first member,
Essbase starts with Child 1, starting with the value #MISSING, and dividing it by Child 1. The
result is #MISSING. Essbase then adds Child 2 and Child 3. Obviously, this result is not the
required one.

To calculate the correct result, make Child 1 the last member in the branch.

You can apply a formula to a member on the database outline to achieve the same result. It,
however, is far more efficient to use these calculation operators on members as shown in
Figure 117, Calculation Operators in the Database Outline.

Avoiding Forward Calculation References

To obtain the calculation results you expect, ensure that the outline does not contain forward
calculation references. Forward calculation references occur when the value of a calculating
member is dependent on a member that Essbase has not yet calculated. In these cases, Essbase
may not produce the required calculation results.

For example, consider this Product dimension:

Figure 118. Example Product Dimension

This Product dimension has three forward calculation references. Two shared members and one
non-shared member have forward calculation references, as shown in Figure 119, Example
Product Dimension Showing Forward Calculation References:

Figure 119. Example Product Dimension Showing Forward Calculation References


In Outline Editor, when you verify the outline, Essbase identifies shared members with forward
calculation references. Verifying the outline does not identify non-shared members that have
forward calculation references. You can save and use an outline containing forward calculation
references.

To verify the outline, see ―Verifying Outlines‖ in the Essbase Administration Services
Online Help.

Consider the five members under Diet. The members P100-20, P300-20, and P500-20 have
forward calculation references:

P100-20 (+) (Shared Member): Essbase calculates the shared member P100-20 before it
calculates the real member P100-20. Because the real member P100-20 has children,
Essbase needs to calculate the real member by adding its children before it can accurately
calculate the shared member P100-20.
P300-20 (+) (Shared Member): Essbase calculates the shared member P300-20 before it
calculates the real member P300-20. Because the real member P300-20 has a formula,
Essbase needs to calculate the real member before it can accurately calculate the shared
member P300-20.
P500-20 (+) (―P200-20‖ + ―P300-20‖): The formula applied to P500-20 references
members that Essbase has not yet calculated. One referenced member, P300-20, has its
own formula, and Essbase needs to calculate P300-20 before it can accurately calculate
P500-20. The members P200-20 and P400-20 calculate correctly, as they do not have
forward calculation references.
P200-20 (+) (Shared Member): P200-20 is not a forward calculation reference, even
though Essbase calculates the shared member P200-20 before it calculates the real
member P200-20. The real member P200-20 has no calculation dependencies (no
children and no formula). Therefore Essbase does not need to calculate the real member
before the shared member. Essbase simply takes the value of the real member.
P400-20 (+) (―P200-10‖ * 2): P400-20 is not a forward calculation reference, even
though the formula that is applied to P400-20 references a member that Essbase has not
yet calculated. The member referenced in the formula does not itself have calculation
dependencies. P200-10 is the only member in the formula, and P200-10 does not itself
have children or a formula. Essbase accurately calculates P400-20.

To get accurate calculation results for P100-20, P300-20, and P500-20, change the order of
members in the outline. By placing the Diet shared members after the Regular members, you
ensure that Essbase calculates the members in the required order.

Figure 120. Changed Product Dimension Without Forward Calculation References

Now Essbase calculates:

The real member P100-20 before it calculates the shared member P100-20. So, P100-20
no longer has a forward calculation reference.
The real member P300-20 before the shared member P300-20. So, P300-20 no longer has
a forward calculation reference.
The referenced member with a formula, P300-20, before the member P500-20. So, P500-
20 no longer has a forward calculation reference.

Block Calculation Order


Essbase calculates blocks in the order in which the blocks are numbered. Essbase takes the first
sparse dimension in a database outline as a starting point. It defines the sparse member
combinations from this first dimension.
In the Sample Basic database, Product is the first sparse dimension in the database outline.

Figure 121. Dimensions in the Sample Basic Database

Note:

The attribute dimensions in the Sample Basic outline (not shown in the figure above), are not
included in the database consolidation and do not affect block calculation order. See Working
with Attributes..

Product has 19 members (excluding the shared members, for which Essbase does not create data
blocks). Therefore, the first 19 data blocks in the database are numbered according to the
calculation order of members in the Product dimension.

Figure 122. Product Dimension from the Sample Basic Database

The other sparse dimension is Market. The first 19 data blocks contain the first member to be
calculated in the Market dimension, which is New York.
The following table shows the sparse member combinations for the first 5 of these 19 data
blocks:

Block # Product Member Market Member


0 Cola (100-10) New York
1 Diet Cola (100-20) New York
2 Caffeine Free Cola (100-30) New York
3 Colas (100) New York
4 Old Fashioned (200-10) New York

The next member in the Market dimension is Massachusetts. Essbase creates the next 19 data
blocks for sparse combinations of each Product member and Massachusetts.

The following table shows the sparse member combinations for the block numbers 19 through
23:

Block # Product Member Market Member


19 Cola (100-10) Massachusetts
20 Diet Cola (100-20) Massachusetts
21 Caffeine Free Cola (100-30) Massachusetts
22 Colas (100) Massachusetts
23 Old Fashioned (200-10) Massachusetts

Essbase continues until blocks have been created for all combinations of sparse dimension
members for which at least one data value exists.

Essbase creates a data block only if at least one value exists for the block. For example, if no
data values exist for Old Fashioned Root Beer (200-10) in Massachusetts, then Essbase does not
create a data block for 200-10 -> Massachusetts. However, Essbase does reserve the appropriate
block number for 200-10 -> Massachusetts in case data is loaded for that member combination in
the future.

When you run a default calculation (CALC ALL) on a database, each block is processed in
order, according to its block number. If you have Intelligent Calculation turned on and if the
block does not need to be calculated, then Essbase skips the block and moves on to the next
block. For information about how intelligent calculation is used to optimize performance, see
Understanding Intelligent Calculation.

Data Block Renumbering


Essbase renumbers the data blocks when you make any of these changes:
Move a sparse dimension
Add a sparse dimension
Change a dense dimension to a sparse dimension
Move any member in a sparse dimension
Delete any member in a sparse dimension
Add a member to a sparse dimension

Cell Calculation Order


Each data block contains all the dense dimension member values for its unique combination of
sparse dimension members. Each data value is contained in a cell of the data block.

The order in which Essbase calculates the cells within each block depends on how you have
configured the database. How you have configured the database defines the member calculation
order of dense dimension members within each block. It also defines the calculation order of
blocks that represent sparse dimension members.

Use these sections to better understand cell calculation order:

Cell Calculation Order: Example 1


Cell Calculation Order: Example 2
Cell Calculation Order: Example 3
Cell Calculation Order: Example 4
Cell Calculation Order for Formulas on a Dense Dimension

Cell Calculation Order: Example 1

Consider the simplest case in which both of these conditions are true:

No dimensions have time or accounts tags.


The setting for consolidating #MISSING values is turned on.

Market and Year are both dense dimensions. The following table shows a subset of the cells in a
data block. Data values have been loaded into the input cells. Essbase calculates the shaded cells.
The numbers in bold show the calculation order for these cells. The cell with multiple
consolidation paths is darkly shaded.
Essbase calculates dense dimensions in the order that they display in the database outline.
Assuming that the Year dimension is displayed before the Market dimension in the database
outline, the Year dimension is calculated before the Market dimension.

The cells are calculated in this order:

1. Qtr1 -> New York


2. Qtr1 -> Massachusetts
3. Jan -> East
4. Feb -> East
5. Mar -> East
6. Qtr1 -> East

Qtr1 -> East has multiple consolidation paths. It can be consolidated on Market or on Year.
When consolidated on Market, it is a consolidation of Qtr1 -> New York and Qtr1 ->
Massachusetts. When consolidated on Year, it is a consolidation of Jan -> East, Feb -> East, and
Mar -> East.

Essbase knows that Qtr1 -> East has multiple consolidation paths. Therefore, it calculates Qtr1 -
> East only once and uses the consolidation path of the dimension calculated last. In the above
example, this dimension is Market.

The results are shown in this table:

Note:

Qtr1 -> East has been calculated only once by consolidating the values for Qtr1.

From the calculation order, you can see that if you place a member formula on Qtr1 in the
database outline, Essbase ignores it when calculating Qtr1 -> East. If you place a member
formula on East in the database outline, the formula is calculated when Essbase consolidates
Qtr1 -> East on the Market consolidation path. If required, you can use a calculation script to
calculate the dimensions in the order you choose. See Developing Calculation Scripts.

Cell Calculation Order: Example 2

Consider a second case in which both of these conditions are true:

No dimensions have time or accounts tags.


The setting for consolidating #MISSING values is turned off (the default).

Market and Year are both dense dimensions. The following table shows a subset of the cells in a
data block. Data values have been loaded into the input cells. Essbase calculates the shaded cells.
The numbers in bold show the calculation order for these cells. The cell with multiple
consolidation paths is darkly shaded.

Essbase calculates dense dimensions in the order they are defined in the database outline.
Assuming the Year dimension is positioned before the Market dimension in the database outline,
the Year dimension is calculated before the Market dimension.

The cells are calculated in this order:

1. Qtr1 -> New York


2. Qtr1 -> Massachusetts
3. Qtr1 -> East
4. Jan -> East
5. Feb -> East
6. Mar -> East
7. Qtr1 -> East

Qtr1 -> East is calculated on both the Year and Market consolidation paths. First, it is calculated
as an consolidation of Qtr1 -> New York and Qtr1 -> Massachusetts. Second, it is calculated as
an consolidation of Jan -> East, Feb -> East, and Mar -> East.

The results are identical to the previous case. However, Qtr1 -> East has been calculated twice.
This fact is significant when you need to load data at parent levels (see Cell Calculation Order:
Example 3).

From the calculation order, you can see that if you place a member formula on Qtr1 in the
database outline, its result is overwritten when Essbase consolidates Qtr1 -> East on the Market
consolidation path. If you place a member formula on East in the database outline, the result is
retained because the Market consolidation path is calculated last.

Cell Calculation Order: Example 3

Consider the previous example but in which all of these conditions are true:

No dimensions have time or accounts tags.


The setting for consolidating #MISSING values is turned off (the default).
Data values have been loaded at parent levels.

Market and Year are both dense dimensions. The following table shows a subset of the cells in a
data block. Data values have been loaded into cells at the parent level.

Essbase calculates dense dimensions in the order that they are defined in the database outline.
Assuming the Year dimension is positioned before the Market dimension in the database outline,
the Year dimension is calculated before the Market dimension.

The cells are calculated in the same order as in Example 2. Qtr1 -> East is calculated on both the
Year and Market consolidation paths.

Because the setting for consolidating #MISSING values is turned off, Essbase does not
consolidate the #MISSING values. Thus, the data that is loaded at parent levels is not
overwritten by the #MISSING values below it.

However, if any of the child data values were not #MISSING, these values are consolidated and
overwrite the parent values. For example, if Jan -> New York contains 50000.00, this value
overwrites the values loaded at parent levels.

Essbase first correctly calculates the Qtr1 -> East cell by consolidating Jan -> East, Feb -> East,
and Mar -> East. Second, it calculates on the Market consolidation path. However, it does not
consolidate the #MISSING values in Qtr1 -> New York and Qtr1 -> Massachusetts and so the
value in Qtr1 -> East is not overwritten.

This table shows the results:


Essbase needs to calculate the Qtr1 -> East cell twice in order to ensure that a value is calculated
for the cell. If Qtr1 -> East is calculated according to only the last consolidation path, the result is
#MISSING, which is not the required result.

Cell Calculation Order: Example 4

Consider a case in which all of these conditions are true:

The Year dimension is tagged as time.


The Measures dimension is tagged as accounts.
The setting for consolidating #MISSING values is turned off (the default).

Figure 123, Profit Branch of the Measures Dimension in the Sample Basic Database shows the
Profit branch of the Measures dimension in the Sample Basic database. This example assumes
that Total Expenses is not a Dynamic Calc member. See Dynamically Calculating Data Values.

Figure 123. Profit Branch of the Measures Dimension in the Sample Basic Database

The following table shows a subset of the cells in a data block. Data values have been loaded
into the input cells. Essbase calculates the shaded cells. The numbers in bold show the
calculation order for these cells. Cells with multiple consolidation paths are darkly shaded.

The Marketing, Payroll, and Misc Expenses values have been loaded at the Qtr1, parent level.
Essbase calculates a dimension tagged as accounts first, followed by a dimension tagged as time.
Therefore, in the above example, Measures is calculated before Year.

Three cells have multiple consolidation paths:

Margin -> Qtr1


Total Expenses -> Qtr1
Profit -> Qtr1

Because the setting for consolidating #MISSING values is turned off, Essbase does not
consolidate the #MISSING values. Thus, any data that is loaded at parent levels is not
overwritten by the #MISSING values and Essbase calculates the three cells with multiple
consolidation paths twice.

The results are shown in this table:

From the calculation order, you can see that if you place a member formula on, for example,
Margin in the database outline, its result is overwritten by the consolidation on Qtr1.

Cell Calculation Order for Formulas on a Dense Dimension


The cell calculation order within a data block is not affected by formulas on members. When
Essbase encounters a formula in a data block, it locks any other required data blocks, calculates
the formula, and proceeds with the data block calculation.

When placing a formula on a dense dimension member, carefully consider the cell calculation
order. As described in the examples above, the dimension calculated last overwrites previous cell
calculations for cells with multiple consolidation paths. If required, you can use a calculation
script to change the order in which the dimensions are calculated. See Developing Calculation
Scripts and Developing Formulas.

Calculation Passes
Whenever possible, Essbase calculates a database in one calculation pass through the database.
Thus, it reads each of the required data blocks into memory only once, performing all relevant
calculations on the data block and saving it. However, in some situations, Essbase needs to
perform more than one calculation pass through a database. On subsequent calculation passes,
Essbase brings data blocks back into memory, performs further calculations on them, and saves
them again.

When you perform a default, full calculation of a database (CALC ALL), Essbase attempts to
calculate the database in one calculation pass. If you have dimensions that are tagged as accounts
or time, Essbase may have to do more than one calculation pass through the database.

The following table shows the number of calculation passes Essbase performs if you have
dimensions that are tagged as time or accounts, and you have at least one formula on the
accounts dimension:

Dimension Tagged
As: Calculation During each calculation pass, Essbase calculates
Passes based on:
Accounts Time
Dense or
None 1 All dimensions
Sparse
Dense Dense 1 All dimensions
Pass 1: Accounts and time dimensions
Dense Sparse 2
Pass 2: Other dimensions
Pass 1: Accounts and time dimensions
Sparse Sparse 2
Pass 2: Other dimensions
Pass 1: Accounts dimension
Sparse Dense 2
Pass 2: Other dimensions
If you are using formulas that are tagged as Two-Pass, Essbase may need to do an extra
calculation pass to calculate these formulas. See Using Two-Pass Calculation.

When you use a calculation script to calculate a database, the number of calculation passes
Essbase needs to perform depends upon the calculation script. See Calculation Passes and
Understanding Multiple-Pass Calculations. Also see Grouping Formulas and Calculations.

If the isolation level is set for committed access and multiple passes are required, Essbase writes
data values at the end of each pass. Data retrievals that occur between passes can pick up
intermediate values.

When you calculate a database, Essbase automatically displays the calculation order of the
dimensions for each pass through the database and tells you how many times Essbase has cycled
through the database during the calculation. Essbase displays this information in the ESSCMD
window and in the application log.

To display the application log, see Viewing the Essbase Server and Application Logs.

For each data block, Essbase decides whether to do a dense or a sparse calculation. The type of
calculation it chooses depends on the type of values within the data block. When you run a
default calculation (CALC ALL) on a database, each block is processed in order, according to its
block number.

Essbase calculates the blocks using this procedure:

If you have Intelligent Calculation turned on and if the block does not need to be
calculated (if it is marked as clean), Essbase skips the block and moves on to the next
block. See Understanding Intelligent Calculation.
If the block needs recalculating, Essbase checks to see if the block is a level 0, an input,
or an upper level block. See Data Storage in Data Blocks.
If the block is a level 0 block or an input block, Essbase performs a dense calculation on
the block. Each cell in the block is calculated. See Cell Calculation Order.
If the block is an upper level block, Essbase either consolidates the values or performs a
sparse calculation on the data block.

The sparse member combination of each upper level block contains at least one parent
member. Essbase consolidates or calculates the block based on the parent member’s
dimension. For example, if the upper level block is for Product -> Florida from the
Sample Basic database, then Essbase chooses the Product dimension.

If the sparse member combination for the block has more than one parent member,
Essbase chooses the last dimension in the calculation order that includes a parent
member. For example, if the block is for Product -> East and you perform a default
calculation on the Sample Basic database, Essbase chooses the Market dimension, which
contains East. The Market dimension is last in the default calculation order because it is
placed after the Product dimension in the database outline. See Member Calculation
Order.

Based on the chosen sparse dimension, Essbase either consolidates the values or performs
a sparse calculation on the data block:

o If a formula is applied to the data block member on the chosen sparse dimension,
Essbase performs a formula calculation on the sparse dimension. Essbase
evaluates each cell in the data block. The formula affects only the member on the
sparse dimension, so overall calculation performance is not significantly affected.
o If the chosen sparse dimension is a default consolidation, Essbase consolidates the
values, taking the values of the previously calculated child data blocks.

Calculation of Shared Members


Shared members are those that share data values with other members. For example, in the
Sample Basic database, Diet Cola, Diet Root Beer, and Diet Cream are consolidated under two
different parents. They are consolidated under Diet. They are also consolidated under their
individual product types—Colas, Root Beer, and Cream Soda.

Figure 124. Calculating Shared Members

The members under the Diet parent are shared members. See Understanding Shared Members.

A calculation on a shared member is a calculation on the real member. If you use the FIX
command to calculate a subset of a database and the subset includes a shared member, Essbase
calculates the real member.

You might also like