Reg:using dynamic calc in calculation script

Can we use a dyanmic calc member of sparse dimension in a calculation script. In which situations we use the intelligent calculation and in which situations we will not use intelligent calculation.

Generally you turn off intelligent calc for any manual calculation scripts you want to run. Intelligent calculation means that "If you then load a subset of data, on subsequent calculations, Essbase calculates only the data blocks that have not been calculated and the calculated blocks that require recalculation because of new data".
Taken straight from: http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_dbag/dcaoptic.htm

Similar Messages

  • Problem at calculation time, when using Dynamic Calc measures

    Hello,<BR><BR>We are using Essabse v6.5 and we want to upgrade to v7.1.<BR>we are performing some tests, in order to check that the Cubes we have created in 6.5 are working properly in v7.1.<BR><BR>the problem that we are experiencing is that the calculation time for the cubes that have dynamic calc members has exploaded to 10 times more, compared to what it took at version 6.5.<BR><BR>Do you have any idea why this happens. (also we are still using the old client "Application Manager")<BR><BR>Furhermore, I have set up 2 cubes that are the same, except the 1st has dynamic calc memebers, whereas the 2ns has not.<BR>I perform calcualtions with the “SET MSG DETAIL;” and receive the following:<BR>CUBE (A) with Dynamic Calc<BR>Total Block Created: [4.3720e+03] Blocks <BR>Sparse Calculations: [8.0620e+03] Writes and [2.5338e+05] Reads <BR>Dense Calculations: [2.8000e+01] Writes and [2.8000e+01] Reads <BR>Sparse Calculations: [6.0202e+06] Cells <BR>Dense Calculations: [1.1476e+06] Cells <BR><BR>CUBE (B) withOUT Dynamic Calc<BR>Total Block Created: [4.3720e+03] Blocks <BR>Sparse Calculations: [4.3720e+03] Writes and [3.5887e+04] Reads <BR>Dense Calculations: [2.8000e+01] Writes and [2.8000e+01] Reads <BR>Sparse Calculations: [6.0202e+06] Cells <BR>Dense Calculations: [1.1476e+06] Cells <BR><BR>Question: Why does Cube (A) has more “Sparse Calculations” than Cube(B) ????<BR><BR><BR>thanx

    Yes, all the settings were exactly the same. See following:<BR>- Data Cache (note: we are NOT using the Data File Cache) <BR>- Index Cache<BR>- Index Page<BR>- Commit Block Interval<BR>- Cache memory Locking<BR>- Access Mode = buffered IO<BR>- Data Compression = Bit-Map encoding<BR>- Two Pass Calculatino = ON<BR>- Aggregate Missing Values = ON<BR>- CFG file<BR><BR><BR>Is there any new settings in 7.1 that I must configure?<BR>Is there any settings that I cannot see through the old client Application Manager, which is important? Must I install the new client in order to be able to configure correctly the Outline/Cube?<BR><BR>Thnkx<BR><BR>

  • Unable to use Dynamic Calc members on webform Column.

    Hi All,
    I am getting an error 'invalid webform' if i keep a dynamic calc member in webform column. For example if i keep scenario "Variance", a dynamic calc member with a formula "Actual -Budget" on webform column, the form is giving me the error.
    What could be the issue. I am using 11.1.2.1. It is working fine in our old version 9.3.1.
    Many Thanks

    Have you checked the essbase application log as it may be generating an error, could need the cache increasing.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to use dynamic set in calculated measure

    Hi, 
    I have this calculated measure in my cube:
    member [Measures].[Estimate]
    as 
    iif(
    isleaf([Calendar].[By Year - Quarter - Month].currentmember),
    iif(
    1=1, // Simplified for examples sake
    [Measures].[Actual],
    [Measures].[Budget]
    sum(
    [Calendar].[By Year - Quarter - Month].currentmember.children,
    [Measures].[Estimate]
    It works fine, however when the user filters on the calendar hierarchy, the totals does not seem to react. As far as I can read, this is related the use of sub cubes when filtering in Excel, and this can be fixed by using a dynamic set, but how? I am unsure
    how one would use it with this measure.
    Thanks in advance

    This used to be a problem with Excel 2003 though I thought it had been fixed with the more recent versions. I've only seen this issue when using named sets in a calculated measure and not when the set is defined within the calculated measure and that's corrected
    by declaring EXISTING before the named set reference as below.
    SET [Member Descendants] AS
    [Calendar].[By Year - Quarter - Month].CurrentMember.CHILDREN
    MEMBER [Measures].[Estimate] AS
    IIF(
    ISLEAF([Calendar].[By Year - Quarter - Month].currentmember),
    IIF(
    1=1, // Simplified for examples sake
    [Measures].[Actual],
    [Measures].[Budget]
    SUM(
    EXISTING [Member Descendants],
    [Measures].[Estimate]
    EXISTING will force the named set to be evaluated with the context of each cell evaluation.
    Martin Mason Wordpress Blog

  • Dynamic Calc Member in formula not working

    Hello,
    I am having an issue trying to calculate a dynamic calc member in a calc script.
    Lets say this is our outline:
    OC_GRANDPA (Dynamic Calc)
    OC_PART1 (Dynamic Calc) (+)
    Child1 (Calculated at top of calc script - STORED member) (+)
    Child2 (Calculated at top of calc script - STORED member) (+)
    OC_PART2 (Calculated in middle) of calc script - STORED member [NO CHILDREN] (+)
    I need to use OC_GRANDPA in a formula
    Final = OC_GRANDPA * .05 Rate;
    It is giving me 0 when I run the calc the first time and works if i run it a second time. Is this issue two dynamic calc members? I tried making them twopass and no luck either. I really do not want to make them stored then do a calc dim (accounts) in my calc script. Any other ideas?? If I make my formula use the level 0 members and not the OC_GRANDPA it works but that is not good coding in case I added more Children Id like to automatically pick up. PLEASE HELP!!!! Thanks!

    Thanks Cameron! I think I actually posted my mini hierarchy incorrectly as I am trying to put a formula on a different member under grandpa that has no children. Regardless it kept coming up zero -- all of the level 0 members are also calculated in the script. After much trial and error I ended up using the calc script for fomulas for the level 0's then I put a member formula on the member that I could not get to calculate in the script and also made it two pass. So then my calc script has the formulas for the level 0, a Calc Dim (Accounts) to perform the agg and calc the member formula then a calc two pass to calc yet another formula that uses this member.
    I do however now have a different question regarding member formulas - do you know if they calculate top down or bottom up?

  • I'm getting an error 1012016 on my calculation script

    Good day guys,
    I just wanted to ask for your opinion as I'm getting this error:
    Cannot calculate dimension member DimX with restricted member ChildrenX1_1.
    Here's the scenario. I have a dimension, DimX and under this dimension, i have 3 children DimX_1, DimX_2, and DimX_3. Now, upon roll up, DimX should only get the value of DimX_3 for actual data, and get the sum of DimX_1 and DimX_3 for all the forecast.
    Now the current structure of this dimension is:
    DimX
    -----DimX_1 ( + )
    ----------ChildrenX1_1
    -----DimX_2 ( ~ )
    ----------ChildrenX2_1
    -----DimX_3 ( + )
    ----------ChildrenX3_1
    Now I have this calculation script:
    FIX(Actual)
    DimX = DimX_3;
    ENDFIX;
    Now upon execution of the calculation, I get the error above. Can you please tell me what's wrong with this simple script?
    Thank you very much.
    Edited by: 26FEB1986 on Jul 9, 2010 8:30 PM
    Edited by: 26FEB1986 on Jul 9, 2010 8:30 PM

    I think the member ChildrenX1_1 is in the fix of Upper portion of the script.
    L.H.S in the formula should be with in the range of Fix criteria
    Remove the ChildrenX1_1 from the Fix or come out of the range.
    You can write like this.
    FIX(DimX)
    FIX(Actual)
    DimX_3;
    ENDFIX;
    ENDFIX;
    You have to run this calc after the rollup.
    If you run this before rollup, the results will gone after rollup.
    This is not good.
    Check out using dynamic calc member formula may be the better option
    If(@ismbr(Actual))
    DimX_3;
    else
    DimX_1+DimX_3;
    endif

  • Dynamic calcs for HFM

    Hi,
    Kindly guide me how to create Dynamic calculation in HFM. I used calculation manager to create simple dynamic calcs when I open my data grid the dynamic account does not populate the values.
    see my script which I copied from calculation manager. Any documents or steps to use dynamic calcs is highly appreciated. (Note: I need to calculate qtr and ytd values at all level based on formula and does not want to roll up e.g for Jan = 10/100, feb = 20/100, for qtr 30/100 and for ytd 30/100).
    0001 Sub pricerul(bLog)
    0002 HS.StartTimer 1,"Rule", "Dynamic","pricerul",""
    0003 HS.StartTimer 0,"Component", "Dynamic","pricetst",""
    0004 ' Component Name = pricetst
    0005 HS.Exp "A#OilPrice = A#OilRev/A#OilProd"
    0006
    0007 HS.Exp "A#OilPerDay = A#OilProd/A#PeriodDays"
    0008
    0009 HS.Exp "A#OilProdpd = A#OilProd"
    0010 HS.EndTimer 0
    0011 HS.EndTimer 1
    0012 End Sub
    0013
    0014
    Best Regards,
    Khalid
    [email protected]

    Hi Kalid,
    You only can calculate dynamic accounts in a sub dynamic ().
    HFM adminstator documentation stands that :
    "Dynamic Calculation
    Dynamic rules enable you to define formulas to dynamically calculate accounts. You can
    dynamically calculate Base accounts only. You cannot use Dynamic rules on Parent accounts.
    Use these guidelines for writing dynamic calculation rules:
    The right side of the equation must reference the same Scenario/Year/Entity combination. This
    means you cannot reference prior year amounts in your calculations.
    Only dynamic accounts are valid on the left side of the equation.
    Dynamic accounts cannot be used on the right side of the equation.
    Only Account and View are valid on the left side of the equation.
    If View is not specified, the calculation executes for YTD and Periodic. If View is specified, the
    calculation is executed only for the specified view.
    HS.View.PeriodNumber is the only HS statement that can be used in a HS.Dynamic calculation.
    All statements in the Sub Dynamic section are executed sequentially."
    The complete documentation is available on Oracle website : http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/hfm_admin.pdf
    Hope it will be usefull.
    Best regards,
    Lionel.

  • Tagging Dynamic Calc using scripts

    Hi,<BR><BR>I frequently need to tag certain members within a dimension as Dynamic Calc. Is there a script, an ESSCMD type of script which I can use to make it easy? Right now I constantly have to use Administration console to do so.<BR><BR>Thanks,<BR>Hank

    Sorry, but I don't think that you can do what you want via scripts.<BR><BR>Setting a member to be dynamic calc would involve either a Dense or Sparse restructure because you are altering the storage.<BR><BR>If you think about it, it would not be possible to do this via a calc script, because part way through (when it got to the part you wanted to change) it would have to do a restructure, and then it would have to resume the calc.<BR><BR>Question - why would you frequently need to change a member to be Dynamically calculated ?

  • Dynamic Calc processor cannot lock more than [100] ESM blocks during the calculation, please increase CalcLockBlock setting and then retry(a small data cache setting could also cause this problem, please check the data cache size setting).

    Hi,
    Our Environment is Essbase 11.1.2.2 and working on Essbase EAS and Shared Services components.One of our user tried to run the Cal Script of one Application and faced this error.
    Dynamic Calc processor cannot lock more than [100] ESM blocks during the calculation, please increase CalcLockBlock setting and then retry(a small data cache setting could also cause this problem, please check the data cache size setting).
    I have done some Google and found that we need to add something in Essbase.cfg file like below.
    1012704 Dynamic Calc processor cannot lock more than number ESM blocks during the calculation, please increase CalcLockBlock setting and then retry (a small data cache setting could also cause this problem, please check the data cache size setting).
    Possible Problems
    Analytic Services could not lock enough blocks to perform the calculation.
    Possible Solutions
    Increase the number of blocks that Analytic Services can allocate for a calculation:
    Set the maximum number of blocks that Analytic Services can allocate to at least 500. 
    If you do not have an $ARBORPATH/bin/essbase.cfg file on the server computer, create one using a text editor.
    In the essbase.cfg file on the server computer, set CALCLOCKBLOCKHIGH to 500.
    Stop and restart Analytic Server.
    Add the SET LOCKBLOCK HIGH command to the beginning of the calculation script.
    Set the data cache large enough to hold all the blocks specified in the CALCLOCKBLOCKHIGH setting. 
    Determine the block size.
    Set the data catche size.
    Actually in our Server Config file(essbase.cfg) we dont have below data  added.
    CalcLockBlockHigh 2000
    CalcLockBlockDefault 200
    CalcLockBlocklow 50
    So my doubt is if we edit the Essbase.cfg file and add the above settings and restart the services will it work?  and if so why should we change the Server config file if the problem is with one application Cal Script. Please guide me how to proceed.
    Regards,
    Naveen

    Your calculation needs to hold more blocks in memory than your current set up allows.
    From the docs (quoting so I don't have to write it, not to be a smarta***:
    CALCLOCKBLOCK specifies the number of blocks that can be fixed at each level of the SET LOCKBLOCK HIGH | DEFAULT | LOW calculation script command.
    When a block is calculated, Essbase fixes (gets addressability to) the block along with the blocks containing its children. Essbase calculates the block and then releases it along with the blocks containing its children. By default, Essbase allows up to 100 blocks to be fixed concurrently when calculating a block. This is sufficient for most database calculations. However, you may want to set a number higher than 100 if you are consolidating very large numbers of children in a formula calculation. This ensures that Essbase can fix all the required blocks when calculating a data block and that performance will not be impaired.
    Example
    If the essbase.cfg file contains the following settings:
    CALCLOCKBLOCKHIGH 500  CALCLOCKBLOCKDEFAULT 200  CALCLOCKBLOCKLOW 50 
    then you can use the following SET LOCKBLOCK setting commands in a calculation script:
    SET LOCKBLOCK HIGH; 
    means that Essbase can fix up to 500 data blocks when calculating one block.
    Support doc is saying to change your config file so those settings can be made available for any calc script to use.
    On a side note, if this was working previously and now isn't then it is worth investigating if this is simply due to standard growth or a recent change that has made an unexpected significant impact.

  • 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

  • How to Flip the Sign using Calculation script for historical data

    I am currently using Essbase 9.3.1. Its required to flip sign for a specific set of accounts for that i am currently using UDA's to flip the sign.
    But now i need to flip the sign for the historical data too. Is there any possible way to flip the sign using calculation scripts for historical data. Kindly let me know your suggestions.
    Many thanks in Advance...
    Edited by: [email protected] on Jul 30, 2009 9:37 PM
    Edited by: [email protected] on Jul 30, 2009 10:58 PM
    Edited by: [email protected] on Jul 30, 2009 11:01 PM

    Of course there is. This is the kind of calc script that only gets run once, so make usre you test it well before doing it on production and make a backup of production before doing it.
    It would be something like
    Fix(time frame, accounts to be flipped, level zero other dimensions)
    actual = actual * -1;
    EndFix
    Cal dim dimensions
    Note, I chose actual, but you could do it for any dimension that has a single or only a couple of members. What ever dimension you choose to do the calculation on, it can't be included in the fix statement

  • When we use calculation script and when we use business rule

    when we use calculation script and when we use business rule can anyone please tell me

    Re the OP's question, here is an excellent introduction to Calculation Manager and business rules. It was the first hit when I googled "calculation manager hyperion".
    http://ranzal.wordpress.com/2010/06/11/oracle-hyperion-calc-manager-%E2%80%93-part-1/
    You can also go to odtug.com -- the Tech Resources section has a series of presentations on Calculation Manager, from beginner to intermediate.
    The added benefit with business rules are that you can use variables and runtime prompts. You can also link planning with business rules and pass information from a web form into a business rules.^^^Only with Planning. There are no runtime prompts with Essbase in 11.1.2.2 but I hear it is coming back in 11.1.2.3
    We can use Business Rule for all applications and it is GUI.^^^Doesn't have to be GUI-based. You can (depending on version) flip back and forth between GUI and script. I have not tried writing (nor can I actually think why you would want to do this) a Calc Mgr rule for multiple apps. Maybe you are thinking of a script object that can be called multiple times?
    To check whether a calc script is executed or not you have to use the Essbase application database log file (Plan1.LOG)^^^As business rules are, sooner or later, translated to BSO (and hey, ASO too and HFM and Fusion and HPCM and they can differ, a lot, so this is not always true) calc script language, you can always check in the application log to see what is run if Planning or BSO Essbase.
    Regards,
    Cameron Lackpour

  • Is it possible to use extensive formulas (e.g. "if" or vlookup functions) in the "Custom Calculation Script"?

    I am working on a form fill PDF converted from MS excel. This is for others to use who don't have MS excel that need to use my spreadsheet.
    1. I would like to know how complex can the formulas be in the custom calculation script in the calculate tab under properties in a cell menu?
    2. Where can I find what formulas will work in the custom calculation script along with the format for those formulas to work correctly (tutorials would help)?
    I have tried writing an "if" function but received and error so I am assuming either functions don't work in the script or there is a different format than standard spreadsheet formats.
    Bruce

    In that case the for loop would be:
        for (var i = 0; i < 8; i += 1) {
            sum += +getField("Total." + i).value;
    So initially, the counter i is equal to zero, so the field name used with the getField method is:
    "Total." + 0, which results in the string "Total.0". With each iteration, the variable i is incremented by 1, so the subsequent field names are the following:
    "Total.1"
    "Total.2"
    "Total.3"
    "Total.4"
    "Total.5"
    "Total.6"
    "Total.7"
    The script gets the value of each field, converts it to a number, and adds the number it to the running sum.

  • Dynamic calc problem while calculation another dynamic calc member

    I have 6 dimensions. Two of them are dense and are tagged as Accounts and Time. The dimension I am having problem with is called "Metrics". It was originally dense. But because the calc scripts were executing slowly, I decided to make "Metrics" a sparse dimension. Now the calc scripts are all executing pretty fast. However, I now have data issues. For example: Within Metrics, I have a hierarchy that looks as follows: Metrics Input.Amount ~ BW.YAG.EQU Dynamic Calc, Two Pass Pct.YAG.EQU Dynamic calc, Two Pass. Both of these Members have a member formula associated with them. "Pct.YAG.EQU" member refers to "BW.YAG.EQU" within it's member formula. Also, notice "Pct.YAG.EQU" comes after "BW.YAG.EQU" Any other thoughts. Really appreciate all your help in this matter. Thanks

    I have 6 dimensions. Two of them are dense and are tagged as Accounts and Time.The dimension I am having problem with is called "Metrics". It was originally dense. But because the calc scripts were executing slowly, I decided to make "Metrics" a sparse dimension. Now the calc scripts are all executing pretty fast. However, I now have data issues.For example:Within Metrics, I have a hierarchy that looks as follows:Metrics Input.Amount ~ BW.YAG.EQU Dynamic Calc, Two Pass Pct.YAG.EQU Dynamic calc, Two Pass.Both of these Members have a member formula associated with them. "Pct.YAG.EQU" member refers to "BW.YAG.EQU" within it's member formula. Also, notice "Pct.YAG.EQU" comes after "BW.YAG.EQU"Any other thoughts.Really appreciate all your help in this matter.Thanks

  • Dynamic calc account using an attribute filter

    Hi experts,
    I have an account member as a dynamic calc tagged as two-pass, Its formula is: StoreMember1 / (StoreMember2/StoreMember3->MEMBER_IN_SPARSE_DIM),
    When i'm using an attribute filter that´s linked to one of my sparse dimensions the values of the account is not correct because it´s a percentage and the attribute filter just SUM the percentage of the values.
    What i really need and i don't know if it´s possible, is a way to recalculate my dynamic calc member after the attribute aggregate the value.
    Product1 Tagged as (Atribute XYZ)
    Product2 Tagged as (Atribute XYZ)
    StoreMember1->Product1 = 80
    StoreMember2->Product1 = 100
    StoreMember3->MEMBER_IN_SPARSE_DIM->NA_PRODUCT = 10
    80 / (100/10) = 8
    Dynamic_%->Product1 = 8% (Correct)
    StoreMember1->Product2 = 80
    StoreMember2->Product2 = 100
    StoreMember3->MEMBER_IN_SPARSE_DIM->NA_PRODUCT = 10
    80 / (100/10) = 8
    Dynamic_%->Product2 = 8% (Correct)
    StoreMember1->(Atribute XYZ) = 160
    StoreMember2->(Atribute XYZ) = 200
    StoreMember3->MEMBER_IN_SPARSE_DIM->NA_PRODUCT = 10
    160 / (200/10) = 8
    But in My calc
    Dynamic_%->(Atribute XYZ) = 16%  (But i need 8%)
    I'm using Plannig\Essbase 11.1.2
    Thank you in advance for your help

    The numbers are just to illustrate what is happening, my real numbers are others, there are about thousands products more.
    StoreMember2->(Atribute XYZ) = 200 it´s probably ok
    Because is the sum of the Product1 Tagged as (Atribute XYZ) = 100 + Product2 Tagged as (Atribute XYZ) = 100
    What´s happened is that when i look in XYZ attribute its simply sum after my dynamic calc
    StoreMember1->Product1 = 80
    StoreMember1->Product2 = 80
    StoreMember1->(Atribute Filter XYZ) = 160 (Ok)
    StoreMember2->Product1 = 100
    StoreMember2->Product2 = 100
    StoreMember2->(Atribute Filter XYZ) = 200 (OK)
    StoreMember3->MEMBER_IN_SPARSE_DIM->NA_PRODUCT = 10 (OK)
    160 / (200/10) = 8
    DynamicCalc% = 16 (wrong probably the attribute is a dynamic dimension that sum after dynamic calc Member)

Maybe you are looking for