Wednesday, October 1, 2014

Essbase Implied Share

"Implied Share" is a default behavior in essbase database. Basically parent shares "storage" with the child in a few special situations which is referred as "Implied Share". In other words Essbase doesn't allocate the storage to "Parent" but it still retrieves the value of the child.

Here are the situations that would cause "Implied Share" behavior:



(1) "Label Only" parent with one or more children

"Label Only" members are meant for organizing the members by giving some meaningful group names. These members are not meant for reporting or planning. Essbase doesn't allocate memory (storage) to this members. But when a "Label Only" parent member is queried, it returns the first child value.

outline:

Working Scenarios (Label Only)
    |-- Jan Forecast (~)
    |-- Feb Forecast (~)
    |-- Mar Forecast (~)
    |-- ....
    |-- ....
    |-- ....


In the above example, Working Forecast value will be equal to Jan Forecast value as both form an "Implied Share"


(2) Parent of a single Child:

Any parent member with only one child creates an implied share with or without the "Label Only" storage property

outline:

Cost of Goods Sold (+)
    |-- Cost (+)
 

(3) Parent of many children but only one child aggregates:

Discounts
    |-- Buy One Get One (~)
    |-- Dollar 10 cashback for 100 (~)
    |-- 25% Discount (+)
    |-- .Mark Downs (~)
    |-- ...
    |-- ....


In the above example, the member "25% discount" creates implied share with the parent "Discounts"


Advatanges of Implied Share:

Data is not duplicated between parent and child hence block size will be kept low. Cube performance will be high


Disadvantages of Implied Share:

In planning data forms (or Excel Data Sheet),  when a parent is specified below the child, the child doesn't get saved. Because essbase saves data from top to bottom.  So the parent member at the bottom will clear or change the data in the child.


How to avoid "Implied Share"?


there are two ways to avoid it. (1) Tag the member as "Never Share"  (2) Change either server level or application level setting in "Essbase.CFG" file. 

                        IMPLIED_SHARE <ApplicationName> FALSE