Advice on calculation script

I have a BSO cube with 9 dimensions ( 3 dense + 6 sparse ). One of the sparse dimensions is a date with a hierarchy structure of year/year&qrt/year&month/year&month&day. At midnight for every day I'm running a load rule that loads the previous days data into the cube.
If I perform a full calc of the cube, it takes approx 30mins, if I use a script to only recalculate the newly added date, it takes approx 60mins. Script as follows:
//ESS_LOCALE English_UnitedStates.Latin1@Binary
SET UPDATECALC OFF;
SET CALCPARALLEL 4;
FIX(@ALLANCESTORS("01/08/2011"))
     CALC DIM(dense_dim_1,dense_dim_2,dense_dim_3,sparse_dim_1,sparse_dim_2,sparse_dim_3,sparse_dim_4,sparse_dim_5);
ENDFIX
@ALLANCESTORS("01/08/2011");
SET UPDATECALC ON;
This would be the script run on the 2nd Aug to calculate the values for the 1st.
Can anyone advise on how I can speed up the single day calculation? or revise the calculation script to be more efficient. The Outline dimensions follow the normal hourglass on dimension members.
Thanks

I see a couple of things that could be possible.
1. Try to only calculate the level 0 intersections, then use the AGG on sparse dimensions.
2. Do you really need to do CALC DIM on your dense dimensions? I like to build my dense dimensions using upper level dynamic calc, that way you don't need to do a CalcDim.
3. Have a read of "Optimizing Calculations" in the DBAG http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_dbag/frameset.htm?dcaoptcs.htm
Robert

Similar Messages

  • Essbase Calculation Script taking more time in new environment

    Hi Everyone:
    We have four environments in our implementation.
    1. DEV Environment - 64 bit Essbase Version 11.1.1.3
    2. PreProd Environment - 32 bit Essbase Version 9.3.0
    3. PreProd Environment - 64 bit Essbase Version 11.1.1.3
    In the above mentioned environment PreProd Environment - 64 bit Essbase Version 11.1.1.3 is a newly installed
    environment.
    We have migrated our Application from PreProd Environment - 32 bit Essbase Version 9.3.0 to PreProd Environment - 64 bit Essbase Version 11.1.1.3. A calculation script that takes only 20 minutes in 32 bit PreProd is taking more than
    5 and half hours in newly installed 64 bit PreProd.
    We have also migrated our Application from DEV Environment - 64 bit Essbase Version 11.1.1.3 to PreProd Environment - 64 bit Essbase Version 11.1.1.3. The calculation script that takes only 20 minutes in 64 bit Dev is taking more than 5 and half hours in newly installed 64 bit PreProd.
    All the server settings and cache setting everything looks similar in all the three environments.
    Please advice us what are all the possibilities that creates the issue.
    Thanks and Regards,
    Prabhakar.

    Hi Cameron,
    Thanks for your reply.
    I have cross checked the Virtual memory in both servers,in new server it was declared high.
    Please find the cfg setting which we are using in our application.
    AGENTPORT 1423
    SERVERPORTBEGIN 32768
    SERVERPORTEND 33768
    AGENTDESC hypservice_1
    ;CSSREFRESHLEVEL auto
    ;SHAREDSERVICESREFRESHINTERVAL 30
    CALCCACHEHIGH 199999999
    CALCCACHEDEFAULT 150000000
    CALCCACHELOW     10000000
    CALCLOCKBLOCKDEFAULT 3000
    DATAERRORLIMIT 10000
    UPDATECALC FALSE
    EXCEPTIONLOGOVERWRITE FALSE
    CALCREUSEDYNCALCBLOCKS FALSE
    PORTUSAGELOGINTERVAL 15
    QRYGOVEXECTIME 600
    LOGMESSAGELEVEL INFO
    CALCPARALLEL 6
    MAXLOGINS 100000
    AGENTDELAY 100
    AGENTTHREADS 30
    AGTSVRCONNECTIONS 10
    SERVERTHREADS 25
    EXPORTTHREADS 1
    SSLOGUNKNOWN FALSE
    CALCNOTICEDEFAULT 10
    NETRETRYCOUNT 3000
    NETDELAY 2000
    __SM__BUFFERED_IO TRUE
    __SM__WAITED_IO TRUE
    and aslo find the caches that we define:
    Index cache:250000
    Data Cache:250000
    Data file cache:32768
    The all above settings are identical both servers.
    In New server ,only one script that is taking more time but remaining scripts are working fine with less time.
    We also did one test cause that splitting the script in to multiple and executed ,in this cause the script where we are using direct assigning value from member(say A1) to another member(Say A2) is taking more time.But same scripts we executed in old server it executes fine.
    Still we are not able to find out exact root cause for this issue.
    Could please anyone help me to resove this issue.
    Regards,
    Prabhakar.

  • Which is faster -  Member formula or Calculation script?

    Hi,
    I have a very basic question, though I am not sure if there is a definite right or wrong answer.
    To keep the calculation scripts to a minimum, I have put all the calculations in member formula.
    Which is faster - Member formula or calculation scripts? Because, if i am not mistaken, FIX cannot be used in member formulas, so I need to resort to the use of IF, which is not index driven!
    Though in the calculation script,while aggregating members which have member formula, I have tried to FIX as many members as I can.
    What is the best way to optimize member formulas?
    I am using Hyperion Planning and Essbase 11.1.2.1.
    Thanks.

    Re the mostly "free" comment -- if the block is in memory (qualification #1), and the formula is within the block (qualification #2), the the expensive bit was reading the block off of the disk and expanding it into memory. Once that is done, I typically think of the dynamic calcs as free as the amount of data being moved about is very, very, very small. That goes out the window if the formula pulls lots of blocks to value and they get cycled in and out of the cache. Then they are not free and are potentially slower. And yes, I have personally shot myself in the foot with this -- I wrote a calc that did @PRIORS against a bunch of years. It was a dream when I pulled 10 cells. And then I found out that the client had reports that pulled 5,000. Performance when right down the drain at that point. That one was 100% my fault for not forcing the client to show me what they were reporting.
    I think your reference to stored formulas being 10-15% faster than calc script formulas deals with if the Formulas are executed from within the default calc. When the default Calc is used, it precompiles the formulas and handles many two pass calculations in a single pass. Perhaps that is what you are thinking of.^^^I guess that must be it. I think I remember you talking about this technique at one of your Kscope sessions and realizing that I had never tried that approach. Isn't there something funky about not being able to turn off the default calc if a user has calc access? I sort of thing so. I typically assing a ; to the default calc so it can't do anything.
    Regards,
    Cameron Lackpour

  • Which is faster - Member formula or Calculation scripts?

    Hi,
    I have a very basic question, though I am not sure if there is a definite right or wrong answer.
    To keep the calculation scripts to a minimum, I have put all the calculations in member formula.
    Which is faster - Member formula or calculation scripts? Because, if i am not mistaken, FIX cannot be used in member formulas, so I need to resort to the use of IF, which is not index driven!
    Though in the calculation script,while aggregating members which have member formula, I have tried to FIX as many members as I can.
    What is the best way to optimize member formulas?
    I am using Hyperion Planning and Essbase 11.1.2.1.
    Thanks.

    The idea that you can't reference a member formula in a FIX is false. Here's an example:
    - Assume you have an account that has a data storage of Stored or Never Share.
    - This account is called Account_A and it has a member formula of Account_B * Account_C;.
    - You would calculate this account within a FIX (inside of a business rule) something like this:
    FIX(whatever . . . )
    "Account_A";
    ENDFIX
    If you simply place the member named followed by a semi-colon within a business rule, the business rule will execute the code in the in that member's member formula.
    Why would you want to do this instead of just putting ALL of the logic inside the business rule? Perhaps that logic gets referenced in a LOT of different business rules, and you want to centralize the code in the outline? This way, if the logic changes, you only need to update it in one location. The downside to this is that it can make debugging a bit harder. When something doesn't work, you can find yourself searching for the code a bit.
    Most of my applications end up with a mix of member formulas and business rules. I find that performance isn't the main driving force behind where I put my code. (The performance difference is usually not that significant when you're talking about stored members.) What typically drives my decision is the organization of code and future maintenance. It's more art than science.
    Hope this helps,
    - Jake

  • How to convert an Excel Formula to a Custom Calculation Script in a Adobe Acrobat 9 Form?

    Hello,
    I am not familiar whatsoever with Javascript and need some help in converting the following Excel Formula so that I can enter it into a Custom Calculation Script in a Adobe PDF Form. Here is the formula:
    =IF(E15<25.01,9.95,IF(E15<50.01,11.95,IF(E15<75.01,13.95,IF(E15<100.01,16.95,IF(E15<150.01 ,19.95,IF(E15<200.01,24.95,IF(E15>200.00,E15*0.125)))))))
    Where "E15" will be the text field named "Subtotal" on my Adobe PDF Form.
    Thank you for any help you can provide!

    Fortunately JavaScript has the 'switch' statement so nested if statements can be avoided.
    var E15 = this.getField("Subtotal").value;
    switch(true) {
    case (E15 < 25.01) :
    event.value = 9.95;
    break;
    case (E15 < 50.01) :
    event.value = 11.95;
    break;
    case (E15 < 75.01) :
    event.value = 13.95;13
    break;
    case (E15 < 100.01) :
    event.value = 16.95;
    break;
    case (E15 < 150.01) :
    event.value = 19.95;
    break;
    case (E15 < 200.01) :
    event.value = 24.95;
    break;
    case (E15 > 200) :
    event.value = E15 * 0.125;
    break;
    default:
    event.value = "";
    break;
    } // end switch;

  • Character Limit to Custom Calculation Script?

    Hi. I have a document that has a text form field. I want to run a custom calculation script that basically says if field "Group Number" = xxxxxxx, then field "Group Name" should = ABC Company.
    I have a list of almost 575 group numbers and names that I need to put in the script. And I've got the script working just fine but I am guessing there is a character limit to the script field???? It won't let me put my full list in there.
    Any suggestions on how to get around this??
    Thanks,
    Brandy

    I think I might have one error but I thought I had corrected it. Let me run this by you. My "if" lines are like this:
    if(a == '88096') event.value = 'Stacy's Carpet Steam Cleaning Company';
    But the code doesn't seem to like the ' in the Group's name. Is there a way to correct that without getting rid of the ' .... ?????

  • Need Assistance With Custom Calculation Script

    I need help with a custom calculation script in Acrobat Pro.  I am trying to add the sum of fields A, B, C, D, E, F, and G together with the lesser value of fields H and I.  What would be the script to enter for this result?  Thank you.

    event.value = Number(this.getField("A").value) + Number(this.getField("B").value) + Number(this.getField("C").value) + Number(this.getField("D").value) + Number(this.getField("E").value) + Number(this.getField("F").value) + Number(this.getField("G").value) + Math.min(Number(this.getField("H").value), Number(this.getField("I").value));

  • Help with Custom calculation script in Acrobat 8

    Hi all, I am using acrobat 8 on OS 10.5
    I am trying to add certain fields (numbers) and then subtract another field value to give an end result.
    I don't know anything about Javascript, would anyone be able to help with any info on how I achieve this result? I can only see Add, x and average etc... nothing there for subtraction
    Thanks for any help in advance
    Swen

    This should get you started:
    >if (event) {
    // get values from two text fields
    var a = Number(this.getField('Text1').value);
    var b = Number(this.getField('Text2').value);
    // subtract the values and show it
    this.event.target.value = a - b;
    Place this in a 3d text field, as a Custom Calculation Script.

  • 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.

  • How do I create an "if" function in a custom calculation script?

    I need to take a simple "value is the sum of" and make it so if one field is less than 1 then the result of the formula will equal "0".
    For example here is a simple "sum of" script:
    Incent Bns.26, Time Bns.26, Spec Bns.26.
    Now converted to a custom calculation script:
    event.value = ((this.getField("Time Bns.26").value) + (this.getField("Incent Bns.26").value)) + (this.getField("Spec Bns.26").value);
    Where Time Bns is calculated by looking at another field Hours26 using a special formula to calculate the bonus.
    I would like to add something like an "if" function to the script so that if the Hours26 field is less than 1 then the output of the script will equal "0".
    I tried this already:
    var rank = this.getField("Hours26").value
    var value = 0
    if (rank < 1) {
      value = 0
    else  (rank > 0) {
       value = ((this.getField("Time Bns.26").value) + (this.getField("Incent Bns.26").value)) + (this.getField("Spec Bns.26").value);
    event.value = value
    But get the error: SyntaxError : missing ; before statement 7 at line 8:
    Thanks ahead of time for any help.
    Bruce

    Try this:
    var rank = this.getField("Hours26").value;
    var value = 0;
    if (rank < 1) {
      value = 0;
    } else {
       value = ((this.getField("Time Bns.26").value) + (this.getField("Incent Bns.26").value)) + (this.getField("Spec Bns.26").value);
    event.value = value;

  • Custom Calculation Script Help Needed

    I need to make a script that Sums a column of fields based on whether or not information found in another column of fields is the same or specific text. Please see below screenshot of what I would like it to do.
    I would like a Sum of all Amounts that have the Code A...

    You can use this script as the custom calculation script of "SumOfA":
    var total = 0;
    for (var i=0; i<=2; i++) {
        if (this.getField("p1TC."+i).value=="Code A")
            total+=Number(this.getField("p1RecIn."+i).value);
    event.value = total;
    You can easily adjust it for the other field as well.

  • Custom Calculation Script to copy value of a field

    Hi,
          I'm trying to copy the value of a field into another field and display it in the pdf. This is for the 1099's. We are trying to print 2 copies(Copy B and Copy 2) in one page. The first field will come from the XML file. I need to copy the value of this field into the second field. Can anyone please help me with the calculation script for this. I tried the getField.value and it didn't work in the pdf. Thanks.
    With Regards,
    Satishpdf.

    Hi,
    There are a couple of approaches.
    One would be to put the script in the radio buttons that when clicked would do the calculate and set the value of the numeric field.
    Another would be to have the script in the calculate event of the numeric field looking back at the value of the radio button. Taking this approach the script in the numeric field calculate event would look like this:
    if (radioButton.rawValue == 1) // radio button bound to 1 is on/yes
         this.rawValue = ; // your calculation goes here
    else
         this.rawValue = null;
    This is testing the value of the radio button and then taking appropriate calculations.
    Hope that helps,
    Niall

  • Custom Calculation Script Help

    I am in need of the correct calculation script in order to complete:
    I am making an evaluation form. This form contains several columns that indicate a point system. Column 1 = 1 point, Column 2 = 2 points, etc.
    I need to be able to have a user mark an "X" in each form field and have the value predetermined depending on which column they marked the "X" in. Example: They mark an "X" in one of the form fields in Column 2, that form field should then have a value of 2 and be inputted into the Sub Total form field. Then I will need all of the values totaled and added into each Sub Total field for each column. Can someone please provide the calculation script to enable this to happen?

    Have you tried to use the pre-set calculation for "Field is the Sum of the following fields:"?
    But you cannot use that calculation option if you want to multiply the result by a weighting factor.
    So if you had used check boxes, you could assign the weighting factor for the export value of the check box. Then you could use the "Field is the Sum of the following fields:" and get the desired value. And then one can use the "Field is the Sum of the following fields'" for the total. The pre-defined script ignores non-numeric values for the unchecked fields.
    Not using this approach means one has to check each text field for a value of "X" and then count them and multiply by the weighting value or summing the weighting value for each "X".
    Scripting like programing requires very detailed information about the objects and how to process them.

  • Custom Calculation Script Question

    I'm flying blind here, I know nothing about this stuff. I just need something i can copy and paste into the "custom calculation script" box.
    I'm working on making a character sheet for star wars saga edition auto calculate. The only thing I have left before it is completely done is one last calculating field. However, I have no clue how to do it.
    What it needs to do is take the value from one field (user entered info) and then divide it by 2, always rounding down.
    The field the user enters a number in is named "Level" and the field that needs to display that number is named "1/2lvl".

    If no one answers here you can try the Acrobat Scripting forum.

  • Custom calculation script for checkboxs

    Hello,
    Can anyone help me out with custom calculation script for this?  I have two mutually exclusive checkboxes that, when checked, I want to populate data into other text fields.
    If Checkbox1 is checked:
    Company1=Warehouse Alpha
    Address1=1234 Any Street
    City/State/Zip1= Los Angeles, CA 90020
    Contact Name1= Mr. Nice Guy
    Phone Number1= 213-854-8565
    Email1=[email protected]
    If Checkbox2 is checked:
    Company2=Warehouse Beta
    Address2= 5678 Awesome Blvd.
    City/State/Zip2= San Bernardino, CA 96545
    Contact Name2= Mr. Handsome
    Phone Number2= 909-824-8265
    Email2=[email protected]
    Thanks,
    Bryan

    So one has two check boxes and one wants them to be mutually exclusive. Name them the same and change the export value of the field. Try it and observe what happens as you check the different check boxes.
    You have described what happens if either box is checked but what happens when a checked box Is unckecked?
    One can place scripts in many locations. I would use a mouse up action for both the check boxes, use the same script for both check boxes.
    I would assume you are using the following names for the fields to populate:
    Company
    Address
    CityStateZip
    ContactName
    PhoneNumber
    Email
    // Mouse up action for both check boxes;
    // initial value for the fields:
    this.getField("Company"),value = "";
    this.getField("CityStateZip"),value = "";
    this.getField("ContactName"),value = "";
    this.getField("PhoneNumber"),value = "";
    this.getField("Email"),value = "";
    // test for check box value for selected box;
    if(event.value == 1) {
    this.getField("Company"),value = "Warehouse Alpha";
    this.getField("CityStateZip"),value = "1234 Any Street";
    this.getField("ContactName"),value = "Los Angeles, CA 90020";
    this.getField("PhoneNumber"),value = "213-854-8565";
    this.getField("Email"),value = "[email protected]";
    if(event.value == 2) {
    this.getField("Company"),value = "Warehouse Beta";
    this.getField("CityStateZip"),value = "5678 Awesome Blvd.";
    this.getField("ContactName"),value = "San Bernardino, CA 96545";
    this.getField("PhoneNumber"),value = "Mr. Handsome";
    this.getField("Email"),value = "[email protected]";
    // end Mouse up action for both check boxes;

Maybe you are looking for