Dynamic Calc with if statements

Hello
I have a dynamically calced member who’s calculation depends on what member of another dimension the user is looking at, so in the calc we have several if statements using the @ismbr function. Our calc looks something like this:
If (@ismbr("Dim Member1") or @ismbr("Dim Member2"))
     Big Calc 1;
elseif (@ismbr("Dim Member3") or @ismbr("Dim Member4"))
     Big Calc 2;
elseif(@ismbr("Dim Member5"))
     Big Calc 3;
else
     Last Big Calc;
endif;
What we are seeing is that when we run a query that should fall through to the final else (IE the Last Big Calc;) every calculation under every if is being executed. To come to this conclusion we did the following. Each of the calculations is pretty complex and can take a bit of time to run so we replaced Big Calcs 1-3 with very simple calcs that are very fast and ran the same query again, and while the result returned was the same (IE the result of Last Big Calc) it returned 10 times faster.
I’m pretty naive about most things Essbase but I’m stuck with trying to solve this problem so I was hoping that someone might have run into something like this before or knows how I can solve it. Any insight will be very appreciated.
I’m using Essbase 9.3.1 and my cube is a BSO cube.
Thanks
David

Is it possible that the intermediate results can be put into "memo" members as a stored value, being "on call" so they don't get re-calculated as often?
This wouldn't eliminate the source of the issue, but it would return the results much faster during retrieves. The downside of course is that these values would extend the calc time, so it may not be the right answer for you.
Alternative #2: Make the final value stored, using a calc script to iterate the formulas only for the appropriate member sets, eliminating the duplicate efforts but moving the calculations away from the D-C realm.
-Doug.

Similar Messages

  • Dynamic calc member formula problem

    Hello Gurús!
    We are using a member called "Full Year" that is a Dynamic calc with a member formula that calls another dynamic calc. For any reason, it is not working when we try to retrieve it from Excel Add-in.
    Any ideas? Any problem for put a Dynamic Calc as member formula of antoher Dynamic calc?
    Thanks for your time!
    Regards,
    Ariel

    that can be the problem, depending on what dimension they are in, the order the two pass occurs could couse you issues. In cases like this I've had to put the entire calculation into the member I wanted to calculate and bypass the dependency

  • Retrive time with Dynamic Calc

    Hi Experts,
    My users run a large smart view report which works well
    However, when they change one of the member on the query to DC member (dense)
    Then the retrieve takes forever and they getting network error from smart view.
    I try to figure out , how can I improve the retrieve time on my BSO app, focusing on DC issues
    I try to increase the data cache, index cache, retrieval buffer and sort.
    I add command of DYNCALCCACHEMAXSIZE and the retrieve doesn’t getting better.
    In addition, can you pls help me understand the app log file,
    Here’s what happen after I ran the report, maybe it will lead
    To the problem:
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1200481)
    Formula for member [YTD USD Display] will be executed in [TOPDOWN and CELL] mode
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1012710)
    Essbase needs to retrieve [1] Essbase Kernel blocks in order to calculate the top dynamically-calculated block.
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1012736)
    The Dyn.Calc.Cache for database [Main] can hold a maximum of [242] blocks.
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1012737)
    The Dyn.Calc.Cache for database [Main], when full, will result in [allocation from non-Dyn.Calc.Cache memory].
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1019018)
    Writing Parameters For Database [Main]
    [Mon Aug 06 02:41:03 2012]Local/Orac///1768/Info(1019017)
    Reading Parameters For Database [Main]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1070013)
    Index cache size ==> [307200000] bytes, [37500] index pages.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1070014)
    Index page size ==> [8192] bytes.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1070081)
    Using buffered I/O for the index and data files.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1070083)
    Using waited I/O for the index and data files.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1019019)
    Reading Data File Free Space Information For Database [Main]...
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1006025)
    Data cache size ==> [512000000] bytes, [9359] data pages
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1006026)
    Data file cache size ==> [0] bytes, [0] data file pages
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1080053)
    Free space recovery skipped. Estimated free space recoverable by RecoverDbFreeSpace: [11068706640] bytes
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1024033)
    Missing Database Config File [E:\Hyperion\AnalyticServices\APP\Orac\Main\Main.cfg], Query logging disabled
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1203135)
    Starting the Data Mining Framework
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1203136)
    Data Mining Framework successfully initialized.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1200551)
    Allocated TRIGMAXMEMSIZE: [4096] Bytes.
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1013205)
    Received Command [Get Database Volumes]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1013205)
    Received Command [Set Database State]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1019018)
    Writing Parameters For Database [Main]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1019018)
    Writing Parameters For Database [Main]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1013205)
    Received Command [Get Database State]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1013205)
    Received Command [Get Database Info]
    [Mon Aug 06 02:41:05 2012]Local/Orac///1768/Info(1013205)
    Received Command [SetApplicationState]
    [Mon Aug 06 02:41:06 2012]Local/Orac///1768/Info(1019010)
    Writing Application Definition For [Orac]
    [Mon Aug 06 02:41:06 2012]Local/Orac///1768/Info(1019011)
    Writing Database Definition For [Main]
    [Mon Aug 06 02:41:06 2012]Local/Orac///1768/Info(1019022)
    Writing Database Mapping For [Orac]
    [Mon Aug 06 02:41:06 2012]Local/Orac///5132/Info(1013210)
    User [essadmin] set active on database [Main]
    Pls help me find out how can I overcome this.
    Many thanks,

    I'll add on to Dan's comment that you very much need to test the dynamic calc (if indeed that is the problem) in the proper context.
    Amusing but painful story:
    I was once tasked with reducing calc time on a BSO database. i saw long ugly stored member calcs. Hah! I cleverly converted them to dynamic and calc times dropped. No one told me (and I didn't ask) how they were to be reported. There were thousands of instances of this member on the Excel sheet. What had been a nice fast retrieve dropped to five minutes. Whoops.
    Take your pain wherever you like -- if you are reading multiple blocks to do the calc (my guess) nothing on earth is going to make it fast. Why make it dynamic in the first place? How many times is the member retrieved? Is it all in the block or, as i guessed, across multiple blocks?
    Last comment -- again (this is getting boring) I agree with Dan -- caches are not, usually, the source of any performance joy and it always comes down to design.
    Regards,
    Cameron Lackpour

  • Dynamic Calc Member with Formula to Calculate a Rolling 13 Year

    I have to create a rollup in my time dimension that will have 13 members representing each month of a 13 rolling forecast. I am having trouble setting this up as dynamic calc members with a formula assigned to it. For example, on of the members has the following formula.
    As you can see, I am referencing several substitution variables since I want to make this as most dynamic as possible without having to make any changes to the formula member. Only making changes to the substitution variable. Any help would be much appreciated.
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Jan"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Feb"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Mar"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Apr"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "May"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Jun"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Jul"));
    "RTM 6" = @MDSHIFT(&Act_RF_Last_Month, -1, "Years", , 5, "Period",);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Aug"));
    "RTM 6" = @SHIFT(&Act_RF_Last_Month,-7);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Sep"));
    "RTM 6" = @SHIFT(&Act_RF_Last_Month,-7);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Oct"));
    "RTM 6" = @SHIFT(&Act_RF_Last_Month,-7);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Nov"));
    "RTM 6" = @SHIFT(&Act_RF_Last_Month,-7);
    ELSE #Missing;
    ENDIF
    IF((@ISMBR(&Current_Year)) AND (&Act_RF_Last_Month == "Dec"));
    "RTM 6" = @SHIFT(&Act_RF_Last_Month,-7);
    ELSE #Missing;
    ENDIF

    We use similar logic but its in a calc script, not a dynamic formula.
    Here's an example of what we do:
    FIX (&Year, &Scenario)
    IF (@ISMBR("JAN"))
    "Average Usage%" = @AVG(SKIPBOTH, @MDSHIFT("Usage %"->"DEC"->&actYear, -1, "Year",), "Util %"->"JAN"->&actYear);
    ELSEIF
    ENDFIX
    Another example in a different database:
    IF (@ISMBR("JAN")) ((@MDSHIFT("Fees"->APR,-1,YEARS,)+@MDSHIFT("Fees"->MAY,-1,YEARS,)+@MDSHIFT("Fees"->JUN,-1,YEARS,)+@MDSHIFT("Fees"->JUL,-1,YEARS,)+@MDSHIFT("Fees"->AUG,-1,YEARS,)+@MDSHIFT("Fees"->SEP,-1,YEARS,)+@MDSHIFT("Fees"->OCT,-1,YEARS,)+@MDSHIFT("Fees"->NOV,-1,YEARS,)+@MDSHIFT("Fees"->DEC,-1,YEARS,)+"Fees"->JAN)/10)*12;

  • Dynamic Calc, 2 Pass with Attributes!

    Hi there,We have an Occupancy KPI within our Measures dimension, that works off the following member calc:(("Agency"/"Occupancy")/"Actual"->"DayInMonth"->"DummyHome")*7;This is set with <Dynamic Calc> <Two-Pass>This works great accross our cost centres until we start to use attributes within the ADD-In. Then the figures are shown as #Missing - Nuts!Any ideas would be welcomeMany Thanks in advanceMark

    Are you also trying to pull dynamic time series or any other dynamically calculated member? If every other intersection is stored, I would expect this to work. However, if you attempt to pull, say Q-T-D(&CurrWk), then a #Mi result is quite possible, and unavoidable (depending on your outline).

  • Problem with Dynamic Calc members in calc script

    Hi
    i wrote a calc script which calculates the value of acct2 which is dependant on the value of acct1 that is calculated from acct0 as bellow:
    FIX(
    M1
    acct1(
    acct1=acct0->M2;
    acct2=acct1->M2;
    ENDFIX
    the value of the intersection of M1->acct0 is 100 as input ,what i wanted from this calc script is the acct2->M1 to be 100 after executing the script once
    but the fact is i have to run it twice to get the expected result.
    the outline is like this:
    M:
    M2 Dynamic calc M2=M0+M1
    M0 Stored
    m1 stored
    Account:
    acct0 stored
    acct1 stored
    acct2 stored
    Can anyone tell me the reason and how to solve it?
    Edited by: user10450070 on 2011-1-25 上午1:38

    Is acct1 correct after one run of the calculation, but acct2 incorrect? If so, it's because Essbase is calculating them both at the same time (parallel), whereas it has to be forced to calculate acct1 first and acct2 second. You can do this with separate fixes as below:
    FIX(M1)
    acct1=acct0->M2;
    ENDFIX
    FIX(M2)
    acct2=acct1->M2;
    ENDFIX
    Or, you can you can force it into calculating in serial mode:
    SET CALCPARALLEL 0;
    FIX(M1)
    acct1=acct0->M2;
    acct2=acct1->M2;
    ENDFIX
    Sabrina
    Edited by: SabrinaD on Jan 26, 2011 7:56 AM

  • Data not replicated with partition and dynamic calc

    HI
    I am using Essbase 11.1.2.1.
    I want to use a replicated pratition wetween two Essbase BSO applications.
    But in my source application, I have to send an account ACCOUNT (level 1) with several stored members and 1 dynamic calc member with formula. Due to this Dynamic calc account, the partition doesn't work (data are not replicated).
    How could I do?
    Thanks
    Fanny

    You're right, dynamic calc account are not issues. I am using them in partition.
    But py issue is there :
    The source dimension is like this :
    TAX (Dynamic Calc)
    - 6xxxxxxx
    - 6yyyyyyy
    - 6zzzzzzz (Dynamic Calc) = formula
    The target dimension is like this :
    TAX
    And so I need to send TAX (Source) to TAX (cible).
    I don't think it is possible, but I would like a confirmation before using something else.
    I hope it is clearer now.
    thanks
    Fanny

  • Essbase : Order evalution with dynamic Calc : Account x Scenario

    Hi everybody,
    I'm trying to calculate a variation N / N-1 in % for All Accounts.
    basically : %/ N-1 = (Actual- Actual N-1) / Actual N-1 - I create a scenario.
    I create a scenario %_N_1 which is Dynamic Calc.
    "%_N_1" = ("ACTUAL" - @MDSHIFT( "ACTUAL" , -1 , "Year" , ))/@MDSHIFT( "ACTUAL" , -1 , "Year" , )*100;
    But with agregated Accounts (which are dynamic calc also), Essbase sums the % ... which is wrong !!!
    Question : How could we set the priority between Scenario and Account for Dynamic Calculation.
    regards,
    ps : I want not to put this calculation in Financial Reporting, because there are a lot of reports that use this measure : %_N_1 !

    Two-pass Calc
    You should basically put this on every formula that is a % to make sure it happens after the aggregation stuff.
    It get's tricky if you did two-pass on two pass but I believe you aren't using two-pass so you should be good to go

  • Help with Dynamic Calc

    Hello, could someone help me why after creating the dynamic calc member below, our calc script somehow get stuck/ ran very very slow...
    Below is currently our Hierararchy for Division dimension:
    Division Dimension
    Division Rollup ( Never Share)
    Division 1 ( Never Share)
    Division a (Never Share) level 0
    Division b (Never Share) level 0
    Division c (Never Share) level 0
    Division 2 (Never Share)
    Division d ( Never Share) level 0
    Alt_Division without cd (Dynamic Calc) ...and the member formula I did is
    ="Division Rollup" - "Division c" - "Division d" ;
    After I refresh, the Alt_Division without cd went fine, calculated correctly when I retreive in Essbase Escel , however, the big problem was, when we run our aregular Essbase calc scripts, it somehow got stuck with Alt_Division without cd member and the calc went very very slow almost to the point that it just stopped calcing.
    Could you please let me know if there is something wrong with my dynamic calc member above... Should the Alt_Division dynamic calc should not be a sibling of the Division Rollup member? or I could not use the "Division Rollup" member .
    Could you please recommend a better way of writing the dynamic calc member ( and it's position in the Hierarchy) ... without me aggregarting the dbase ...( I like dynamic calc since it aggs on the fly).
    Please advise.
    Thanks.

    Few Things...
    I am assuming Division is a sparse Dimension. A Dynamic Calc member formula on a Sparse dimension member will surely take lots of time.
    Suggestion 1:
    Create an Alternate hierarchy sharing c and d. Change the consolidation operators to get the C - D at Alt_Hierarchy.
    Suggestion 2:
    Make the member Store and put the desired calculation in a Calculation script rather than having it as a dynamic calc member formula.
    Hope this helps.
    Madhavi

  • Problem with a calc involving @MDSHIFT and Dynamic Calc

    Hi all,
    I have a problem with the calculation of a member in a calc script. The formula of this member is :
    "R70100"
    IF(@ISMBR("M01"))
    ("T_008"->"Cumul"->"HT"+"T_003"->"Cumul"->"HT")*"AVCT_PR" - @MDSHIFT("R70100" -> "Cumul" -> "HT" -> "M12", -1, "Year", );
    ELSE
    ("T_008"->"Cumul"->"HT"+"T_003"->"Cumul"->"HT")*"AVCT_PR" - @MDSHIFT("R70100" -> "Cumul" -> "HT", -1, "Period", );
    ENDIF
    - R70100 is a member of a dense dimension.
    - T_008, T_003 and AVCT_PR are spare and stored.
    - "Cumul" is a dynamic member which allow us to calculate cumulative from monthly.
    - Time is split into two dimensions, Period and Year.
    The problem is that the @MDSHIFT doesn't seems to work with the dynamic calc as the monthly result is the cumulative correct value. I didn't know what is wrong BUT each time I launch the script, values are good for one more month.
    After one run, for example, I obtained this result :
    !http://zenon.apartia.fr/stuff/200910070001.GIF!
    Two run later, here are the news values :
    !http://zenon.apartia.fr/stuff/200910070002.GIF!
    Any idea on what going on and how to correct it ? Thanks !
    Frédéric

    A couple of questions for you:
    1) Do you need the overhead of @MDSHIFT when you are only moving in one dimension? Wouldn't @PRIOR have been a lot easier? At least this is true for the ELSE condition.
    2) Could you post just the results of the @MDSHIFT calculation so we (okay, this may be just for me, it's still breakfast time here and not enough coffee has been ingested yet to read a spreadsheet without recourse to the formulas) can better see the impact?
    3) Have you tried using your code against a non-dynamic member? Does it make a difference?
    Regards,
    Cameron Lackpour

  • Function @Parent with Member Dynamic calc

    Hi Everybody,
    I have a simple Business Rule where i need to assign the Parent value to a child. The parent is a Dynamic Calc and using the function @Parent Essbase doesn't retrieve the data. The formula is as follows:
    Fix (
    Account_1,
    product_1
    Version_X = @Parent(Currmbr(Account))->@Parent(Currmbr(product))->Version_Y;
    Endfix
    The parent of Account_1 is a Dynamic Calc member. I already tried with @Parentval, but it isn't the solution.
    Thank you all guys
    Maurizio
    Maurizio

    Thanks for your reply Soul but it didn't work in my case. I tried using @Ancest function but when the business rule is launched Essbase returns missing value. The member on which i'm assigning value is a Sparse Dimension Member (Version) whereas the Dimension member from which i'm trying to retrieve value (Dynamic Calc Member) is a Dense Dimension Member (Account).
    I also tried the SET FRMLRTDYNAMIC....
    Thank you anyway.... if you have any other idea please tell me... otherwise i will have to use @Sumrange function to obtain the value of the childrens of that Account Member.
    Tks
    Maurizio

  • Trouble with Dynamic Calc Scenario

    We have built a dynamic Calc scenario in our first 11.1.2 Planning environment that works fine in web forms; Forecast vs Prior Forecast Version. However, when we created our second environment the dyanmic scenario is now causing errors with the web forms. I am getting the generic Data form is invalid, check log for details.
    I have isolated the problem to this one scenario. We have three other dynamic scenarios on the form and they work fine.
    The formula on the scenario below which is not working does reference another dynamic scenario (Prior Forecast Version, which is working).
    Forecast vs Prior Forecast (Scenario not working)
    "Forecast" - "Prior Forecast Version";
    Prior Forecast Version works fine and here is that formula:
    if (@ISMBR("Final"))
    "Forecast"->&FcstPF;
    elseif (@ISMBR("Final_Jul"))
    "Budget"->"Final";
    else
    @PRIOR("Forecast", 1, @RELATIVE("Version", 0));
    endif;
    The Prior Forecast Version is before the Forecast vs Prior Forecast in the outline.
    I have checked the formulas and settings on each one and they are the same in both environments. We used LCM to build the second environment.
    Any suggestions on where to look next?
    I am not finding anything in the planning logs that seems to help, do I need to turn on auditing first to get information from the planning logs when you get the generic Check Planning Log for Details message?
    Thanks.

    I haven't check the essbase log but will do so. I thought I checked the correct planning log, but looking at the path I was using, I might have been looking for the log in the wrong place. I was using the path from the troubleshooting guide but it was the diagnostic logs and maybe that is only the correct one when we have auditing turned on.
    Help on the path to the correct planning log would be great. I was looking in middleware/user_projects/epmsystem1/diagnostics/logs
    Thanks.

  • Retrieval performance become poor with dynamic calc members with formulas

    We are facing the retrieval performance issue on our partititon cube.
    It was fine before applying the member formulas for 4 of measures and made them dynamic calc.
    The retrieval time has increased from 1sec to 5 sec.
    Here is the main formula on a member, and all these members are dynamic calc (having member formula)
    IF (@ISCHILD ("YTD"))
    IF (@ISMBR("JAN_YTD") AND @ISMBR ("Normalised"))
    "Run Rate" =
    (@AVG(SKIPNONE, @LIST (@CURRMBR ("Year")->"JAN_MTD",
    @RANGE (@SHIFT(@CURRMBR ("Year"),-1, @LEVMBRS ("Year", 0)), @LIST("NOV_MTD","DEC_MTD")))) *
    @COUNT(SKIPNONE,@RSIBLINGS(@CURRMBR ("Period")))) + "04";
    ELSE
    IF (@ISMBR("FEB_YTD") AND @ISMBR ("Normalised"))
    "Run Rate" =
    (@AVG (SKIPNONE, @RANGE (@SHIFT(@CURRMBR ("Year"),-1, @LEVMBRS ("Year", 0)),"DEC_MTD"),
    @RANGE (@CURRMBR ("Year"), @LIST ("JAN_MTD", "FEB_MTD"))) *
    @COUNT(SKIPNONE,@RSIBLINGS(@CURRMBR ("Period")))) + "04";
    ELSE
    "Run Rate"
    =(@AVGRANGE(SKIPNONE,"Normalised Amount",@CURRMBRRANGE("Period",LEV,0,-14,-12))*
    @COUNT(SKIPNONE,@RSIBLINGS(@CURRMBR ("Period"))))
    + "Normalised"->"04";
    ENDIF;
    ENDIF;
    ELSE 0;
    ENDIF
    Period is dense
    Year is dense
    Measures (normalised) is dense
    remaining all sparse
    block size 112k
    index cache to 10mb
    Rertrieval buffer 70kb
    dynamiccalccahe max set to 200mb
    Please not that, this is partition cube, retriving data from 2 ASO, 1 BSO underline cubes.

    I received the following from Hyperion. I had the customer add the following line to their essbase.cfg file and it increased their performance of Analyzer retrieval from 30 seconds to 0.4 seconds. CalcReuseDynCalcBlocks FALSE This is an undocumented setting (will be documented in Essbase v6.2.3). Here is a brief explanation of this setting from development: This setting is used to turn off a method of reusing dynamically calculated values during retrievals. The method is turned on by default and can speed up retrievals when it involves a large number of dynamically calculated blocks that are each required to compute several other blocks. This may happen when there is a big hierarchy of sparse dynamic calc members. However, a large dynamic calculator cache size or a large value of CALCLOCKBLOCK may adversely affect the retrieval performance when this method is used. In such cases, the method should be turned off by setting CalcReuseDynCalcBlocks to FALSE in the essbase.cfg file. Only retrievals are affected by this setting.

  • Problem with FIX-Statement in Business Rule

    Hello,
    ich have a business rule with two nested FIX-Statements.
    I calculate depending on the month in the runtime-prompt a forecast for this month. After that i fix on that month an clear some specific accounts. But some of these accounts still have data.
    they are in the cleardata section and they are children of FiBuKonten from the first fix. When i leave out the @CHILDREN("FiBuKonten") in the first fix the accounts are cleared as excepted, but i need that fix because not all accounts are part of this forecast.
    I changed everything to work as a calc-script and the same problem appears, on dev and prod database.
    Why are some accounts cleared while others not ? Really misterious!
    Here is the rule
    FIX([TEBIT_RTP_Year],[TEBIT_RTP_Version],"IFRS operativ",[TEBIT_RTP_Entity],"Daten brutto","Daten_brutto_P_M",@CHILDREN("FiBuKonten"))
    [TEBIT_RTP_Period](
    IF(@ISMBR("Jan"))
    Actual_kum = Budget_kum;
    ELSEIF(@ISMBR("Feb"))
    Actual_kum = Budget_kum;
    ELSEIF(@ISMBR("Apr"))
    Actual_kum = @ROUND(("1HR"->Dec - Actual_kum->Mar)/9 + Actual_kum->Mar,2);
    ELSEIF(@ISMBR("May"))
    Actual_kum = @ROUND(("1HR"->Dec - Actual_kum->Apr)/8 + Actual_kum->Apr,2);
    ELSEIF(@ISMBR("Jul"))
    Actual_kum = @ROUND(("2HR"->Dec - Actual_kum->Jun)/6 + Actual_kum->Jun,2);
    ELSEIF(@ISMBR("Aug"))
    Actual_kum = @ROUND(("2HR"->Dec - Actual_kum->Jul)/5 + Actual_kum->Jul,2);
    ELSEIF(@ISMBR("Oct"))
    Actual_kum = @ROUND(("3HR"->Dec - Actual_kum->Sep)/3 + Actual_kum->Sep,2);
    ELSEIF(@ISMBR("Nov"))
    Actual_kum = @ROUND(("3HR"->Dec - Actual_kum->Oct)/2 + Actual_kum->Oct,2);
    ENDIF;)
    FIX([TEBIT_RTP_Period])
         CLEARDATA "41000000";
         CLEARDATA "41100000";
         CLEARDATA "41200000";
         CLEARDATA "41990000";
         CLEARDATA "41000900";
         CLEARDATA "41096000";
         CLEARDATA "41196000";
         CLEARDATA "41296000";
         CLEARDATA "41940000";
         CLEARDATA "42000000";
         CLEARDATA "42100000";
         CLEARDATA "42200000";
         CLEARDATA "42099000";
         CLEARDATA "42199000";
         CLEARDATA "42299000";
         CLEARDATA "42990000";
         CLEARDATA "41918000";
         CLEARDATA "41100900";
         CLEARDATA "42091000";
         CLEARDATA "42918000";
         CLEARDATA "54000000";
         CLEARDATA "54009000";
         CLEARDATA "54009900";
         CLEARDATA "54009600";
         CLEARDATA "54130200";
         CLEARDATA "93541175";
         CLEARDATA "54001000";
         CLEARDATA "54001900";
         CLEARDATA "54014000";
         CLEARDATA "54019000";
         CLEARDATA "54021000";
         CLEARDATA "54021900";
    ENDFIX
    ENDFIX
    Thx for your help.
    Greets
    Kevin

    Does it make a difference when a dimension has dynamic calc members and i dont fix on that dimension to fix on the Level 0 members of that dimension ? The result should be the same in my eyes.
    SGF is dense. I found out that everytime i the fix includes that first member M_124100 the error occoured.
    I changed the rule in the form that i split the FIX Statement. And now it works without the error and with all data cleared. Even when i don`t reorder the dimension SGF.
    Again thanks for your help.
    Greets
    Kevin
    FIX([TEBIT_RTP_Year],[TEBIT_RTP_Version],"IFRS operativ",[TEBIT_RTP_Entity],"Daten brutto","Daten_brutto_P_M")
    FIX(@CHILDREN("FiBuKonten"))
    [TEBIT_RTP_Period](
    IF(@ISMBR("Jan"))
    Actual_kum = Budget_kum;
    ELSEIF(@ISMBR("Feb"))
    Actual_kum = Budget_kum;
    ELSEIF(@ISMBR("Apr"))
    Actual_kum = @ROUND(("1HR"->Dec - Actual_kum->Mar)/9 + Actual_kum->Mar,2);
    ELSEIF(@ISMBR("May"))
    Actual_kum = @ROUND(("1HR"->Dec - Actual_kum->Apr)/8 + Actual_kum->Apr,2);
    ELSEIF(@ISMBR("Jul"))
    Actual_kum = @ROUND(("2HR"->Dec - Actual_kum->Jun)/6 + Actual_kum->Jun,2);
    ELSEIF(@ISMBR("Aug"))
    Actual_kum = @ROUND(("2HR"->Dec - Actual_kum->Jul)/5 + Actual_kum->Jul,2);
    ELSEIF(@ISMBR("Oct"))
    Actual_kum = @ROUND(("3HR"->Dec - Actual_kum->Sep)/3 + Actual_kum->Sep,2);
    ELSEIF(@ISMBR("Nov"))
    Actual_kum = @ROUND(("3HR"->Dec - Actual_kum->Oct)/2 + Actual_kum->Oct,2);
    ENDIF;)
    ENDFIX
    FIX([TEBIT_RTP_Period])
    CLEARDATA "41000000";
    CLEARDATA "41100000";
    CLEARDATA "41200000";
    CLEARDATA "41990000";
    CLEARDATA "41000900";
    CLEARDATA "41096000";
    CLEARDATA "41196000";
    CLEARDATA "41296000";
    CLEARDATA "41940000";
    CLEARDATA "42000000";
    CLEARDATA "42100000";
    CLEARDATA "42200000";
    CLEARDATA "42099000";
    CLEARDATA "42199000";
    CLEARDATA "42299000";
    CLEARDATA "42990000";
    CLEARDATA "41918000";
    CLEARDATA "41100900";
    CLEARDATA "42091000";
    CLEARDATA "42918000";
    CLEARDATA "54000000";
    CLEARDATA "54009000";
    CLEARDATA "54009900";
    CLEARDATA "54009600";
    CLEARDATA "54130200";
    CLEARDATA "93541175";
    CLEARDATA "54001000";
    CLEARDATA "54001900";
    CLEARDATA "54014000";
    CLEARDATA "54019000";
    CLEARDATA "54021000";
    CLEARDATA "54021900";
    ENDFIX
    ENDFIX

  • Dense dim - dynamic calc

    Hi
    Essbase / Planning 11.1.2.1 - BSO db.
    We are reviewing our app / db design following implementation last year. One of the things I have noticed is that one particular dense dimension has all members as stored (ie the non-level 0 members are not dynamic calc). Dimension has no member formulas, it is a straight roll up with consolidation for members consisting of (+ and ~).
    I have changed this in our dev environment and ran some tests - calc time dramatically improved and total page file size halved (hard disk space becoming a slight issue for us so this is useful).
    If we ran with this change, is there anything we need to do or be aware of, other than amending any business rules to exclude calc dims or partial aggs on the amended dimension? It seems a fairly low risk change, but looking for clarification that this is the case.....
    The documentation on this states that any required combinations at non level 0 members will be calculated on the fly (eg a user retrieve). Is the same true if a non level 0 intersection is used within a business rule? (testing this on Sample Basic seems fine, again just looking for confirmation).
    Thanks
    JB

    Yes, the same is true within a rule (i.e. if you reference an upper level in a dense dimension, Essbase will calculate it for you).
    I think the only major functional issue that you haven't mentioned is that you need to be sure that none of your existing loads / calculations / user lock & send activities depend on being able to store a value at an upper level - for example, that you never load to a Quarter and then run a calc that allocates down to the Periods.

Maybe you are looking for

  • Jdesktop pane is not working as desired

    I took code from sun tutorial and added few lines of code, I using Jdesktop and internal frame here. my requirement is that i need to add one panel on Jdesktop pane. however when i tried to add panel, entire code behaved tht is not desired. internal

  • Combo box popup width adjusting no longer work in 1.0.6_26-b03

    Previously, I was able to adjusting combo box popup's width, by referring to the technique described in [http://tips4java.wordpress.com/2010/11/28/combo-box-popup/|http://tips4java.wordpress.com/2010/11/28/combo-box-popup/]. During that time, I was u

  • New Zen trouble adding a memory card (not seen)?

    0New Zen trouble adding a memory card (not seen)?8I have a new zen 4gb unit and love it, saw it has a memory card slot so i stuck an 8gb sdhc sandisk 3 extreme memory card in there, figured I could dump more fun stuff in there on it but when i use th

  • Getting the default pie chart colors

    Hello, I have a pie and a bar chart that display the same information... Pie charts colors are filled automatically, and I would like to use those colors for my bar chart as well... is there any way to get those colors? Tnanks.

  • Trouble Syncing Ipod

    I am trying to sync my ipod and keep getting mesage staing ipod cannot be synced because apps on ipod cannot be determined. I have tried restarting my computer, using a usb port on the back.  any other suggestions?