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