Skip to Main Content

Analytics Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Help: Aggregation with @IDESCENDANTS() Failed If Calc Parallel Enabled

FinFuJul 11 2013 — edited Aug 26 2013

Dear All,

We use @IDESCENDANTS(Member_Name) to aggregate Essbase for a long while and every thing was fine until we migrate to version 11.1.2.2 from 11.1.1.3 recently.

Our application is multiple currency enabled, and we wrote customized BR to perform the currency conversion and aggregation in a single Calculation Manager rule as usual. After some test run we noticed that the currency conversion did not work normally. Aggregation of "Local" and "JPY" is OK, but "USD" always failed to be aggregated for some Entity members, causing upper-level number failed to tie with other currencies. After a lot of experiments I found following conclusions:

1. Aggregation of every dimension for all level 0 Entity members are correct.

2. If I aggregate with "CALC ALL" it worked. However, it is much more time consuming and it does not meet our client's need for business logic.

3. If I "SET CALCPARALLEL 0", which overrides our parallel calc settings (which is 4) defined in Essbase.cfg, the outcome is correct.

4. If aggregate Entity dimension with "AGG()" command, the outcome is right. But we cannot define the exact member(s) to calculate to, failing to meet our client's need.

I wondered if there is change of the underlying calculation logic of parallel calculation in Essbase kernel, because we have aggregate with @IDESCENDANTS() for a long while in version 11.1.1.3 and we adopt the same settings in Essbase.cfg in version 11.1.2.2. Please kindly help us on this topic if anyone has encountered this problem before. Following is the script I used for testing:


--

SET MSG DETAIL;

SET UPDATECALC OFF;

SET LOCKBLOCK HIGH;

SET AGGMISSG ON;

/* Following is the parallel calc settings. The aggregation result would be correct if set to "0", while performance is heavily impacted. */

/* SET CALCPARALLEL 0;*/

FIX ({Var_Year_Multi},{Var_Scenario_Multi},{Var_Period_Multi},{Var_Version_Multi})

  FIX ("Local", "JPY", "EUR", "GBP", "CNY", "USD","HSP_InputValue")

    FIX (@IDESCENDANTS("Entity",0),@DESCENDANTS("Object"),@IDESCENDANTS("Total Company"))

      @IDESCENDANTS("Total Value");

    ENDFIX

    FIX (@IDESCENDANTS("Entity",0),@DESCENDANTS("Object"),@IDESCENDANTS("Total Value"))

      @IDESCENDANTS("Total Company");

    ENDFIX

    FIX (@IDESCENDANTS("Entity",0),@IDESCENDANTS("Total Company"),@IDESCENDANTS("Total Value"))

      @DESCENDANTS("Object");

    ENDFIX

    FIX (@DESCENDANTS("Object"),@IDESCENDANTS("Total Company"),@IDESCENDANTS("Total Value"))

      /* If following is changed to "AGG("Entity")" then it works. However, we would like to put a variable of Entity member here. */

      @IDESCENDANTS("Entity");

    ENDFIX

  ENDFIX

ENDFIX

--


I skipped the description for those variables since they appeared to be quite self-descriptive. Thank you all for any updates!


Warm Regards,

John

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 23 2013
Added on Jul 11 2013
7 comments
2,848 views