Calc script question

hi ,
i have 4 dimensions
Time
......Jan08
......Feb08
......mar08
Market
.....north
.....south
product
.....p1
.....p2
measures
....number
I have a data for the record
Jan08 north p1 number 100
can we do calc script to get the above value for all records where ever the p1 presents
like
feb08 north p1 number 100
Mar08 north p1 bumber 100
Time north p1 bumber 100
jan08 south p1 number 100
feb08 south p1 number 100
mar08 south p1 number 100
mar08 south p1 number 100
Time south p1 number 100.........................
......................................

There are a number of alternatives here, but you haven't really provided enough information to tell us what you are trying to do.
Are you wanting to spread the input to all Time periods, all Markets, all Products, all Measures, or, as I suspect, to the measures based on the product code? If Product "p1" has a group of measures that are being loaded separately by Time/Market, the spread is to measures based on product. Your description lacks the boundaries applied to the spread, and doesn't link any dimensions to the products directly, only through the subsequent note do you hint that "p1" goes to a number of measures, and "p2" goes to a different set of measures.
If this is the case, then the @MEMBER formula seems to be the right answer: @MEMBER(@CONCATENATE(@SUBSTRING(@NAME(@CURRMBR(product),1,2 ), "00")))
The function above will return the value from measure "100" for product "p1", "200" for product "p2", etc..., to use it, you would need to put the formula on a member that would be a static reference in your Time or Market dimension -- unless that's a dynamic part as well, again -- you need to refine your requirements to yield any meaningful answer.
From your description, it may be the other way around that you want to go... from Measure "101" and any product, do you want the value from "p1"->"100", or (as I suspect) from Product "p1" and any measure, do you want the value from "p1"->"100"?

Similar Messages

  • Question on calc script

    I have a calc script I fix on few measures ie few dense dimension members and few sparse dimension members, my calc script look like this.
    FIX( Dense dimension members, sparse dimension members )
    " Actual " (
    IF (CONDITION))
    JEXPORT( )
    ENDIF;
    ENDFIX
    For the same script if I FIX on actual , I mean
    FIX( Dense dimension members, sparse dimension members, Actual)
    " Actual " (
    IF (CONDITION))
    JEXPORT( )
    ENDIF;
    ENDFIX Now I am getting an error "Cannot calculate dimension member (actual ) with restricted member (actual)"
    In this OTL Scenario is sparse dimension, Can any one tell me in terms of blocks ...what exactly happening behind the scenes..
    Thanks in advance for your input.

    Hi,
    When we fix sparse members, what we get is a fixed combination of index entries.
    Meaning, its like this combination now can be assumed to act as another index entry (only imagine this), which either points to a block (if members from all sparse dimensions are fixed)
    (OR)
    if there are some sparse dimensions which haven't been fixed, this new entry can be a part of all unique combinations with the remaining sparse dimension members (which contain data), to point to block depending on the combination.
    Now when you fix dense members:
    Imagine a block, where you have fixed some dense members, this effectively slices and dices the block to a smaller block, which consist of the remaining dense members (i.e. the combination of the remaining dense members will lead to a cell in the block).
    So when you fix both sparse and dense members you are effectively locking onto a block and also slicing it at the same time.
    In the script you should't use "Actual" again as you have already fixed it, and you have brought your index down to lock onto a certain block, and when you again use "Actual" essbase is looking for another sparse dimension with the name Actual which is not possible.
    Let me know if this makes sense.
    THanks,
    Anindyo

  • The export file from a calc script - naming and date/time stamp

    Here is a simple calc script to export data.
    2 questions:
    1. Is there an easy way to add a date/time stamp on the name of the data file so that it does not overwrite the older ones every time?
    2. I tried to specify the path so that it write to another server. "\\mfldappp011\E:\Exp_AW.txt". It's not working. How should I specify the path ?
    Fix (@Relative("Yeartotal",0),"Actual","Working",&ActualYear);
    Dataexport "file" "," "C:\Exp_AW.txt" "#MI";
    EndFix;
    Edited by: user9959627 on Sep 7, 2012 11:25 AM

    Probably easiest to call the maxl script from a command line script, then rename the exported file to include the tme stamp and copy/move it to a location.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • OBIEE 11g write back to Essbase and run calc script feature

    Hi,
    I have a requirement to write back into Essbase Cube and run calc script from OBIEE dashboard.
    From what i have search on google, we must deploy additional Java Script into weblogic, but that is before OBIEE 11.1.1.6.
    I have 2 question:
    - Does OBIEE 11.1.1.6 already supported native write-back to Essbase and running calcscript?
    - Anyone has example of the custom java-script for write back and running calcscript?
    And another, if there are requirement like this, is it better to install Essbase Add-in on Microsoft Excel and do the what-if analysis there, then just display the report on OBIEE dashboard? (based on user-friendliness and the complexity on maintenance)
    Thanks in advance.

    Hi,
    Even I am trying to achieve the same thing as you have mentioned but think that it is not possible to achieve easily in obiee 11.1.1.6, though we do have a work around to perform a writeback in Essbase cube using JAPI as mentioned below.
    Also we can call Hyperion reports from OBIEE using Action Links and also pass parameters to the same but dont know if it runs calculation script.
    Below link could be useful for you for write back workaround.
    http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/
    Let me know in case you have found out anything else related to same.
    Thanks,

  • Calc scripts running very Long time

    Hi All,
    Recently, i am migrated the objects from Production to Test region. We have 5 applications and each of the application has a set of calc scripts.
    In test region, they are running really long time. Where as in Production, they run for less time.
    In TEST region each Calc script is taking 10 times more time than the Production times.
    No Dimension added or no script is updated. No difference in objects between TEST and PROD.
    Please suggest me, why is this difference.
    Thanks
    Mahesh

    The obvious first question would be if the hardware is different. You would expect prod to be a more powerful server and therefore perform better.I'm seeing a lot of virtualized test servers (who knows, really, what power the box has) and real prod servers. That can make a huge difference in performance.
    It makes benchmarking tough -- yes, you can see how long something will take relative to another process, but there isn't any way to know how it will perform in production until you sneak it over there and benchmark it. It can be a real PITA for Planning.
    And yes, the theory is that dev and prod are similar so that the above isn't an issue, but that seems to be a more theoretical than actual kind of thing.
    Regards,
    Cameron Lackpour

  • Essbase performance issue when calc scripts are run on FDM cube on same server

    We have a large Essbase application which has high usage on a daily basis, which is being impacted when we run Calc scripts on an FDM forecast cube which is on the same server. The large application is on EIS 11.1.2 and the FDM cubes are being migrated to the same server and also being upgraded from EIS 7.1 on Unix to EIS 11.1.2 on NT. Every time the Calc scripts are run on the FDM cube, the performance of the Essbase application is degraded and it shuts down after some time.

    Sudhir,
    Do you work at a help desk or are you a consultant? you ask such a varied range of questions I think the former. If you do work at a help desk, don't you have a next level support that could help you? If you are a consultant, I suggest getting together with another consultant that actually knows more. You might also want to close some of your questions,. You have 24 open and perhaps give points to those that helped you.

  • Outline Order, Calc Script Performance, Substitution Variables

    Hi All,
    I am currently looking in to the performance side.
    This is mainly about the calculation script performance.
    There are lot of questions in my mind and as it is said you can get the results only by testing.
    1. Outline order should be from least sparse to most sparse
    (other reason : to accomodate as many sparse members in to calculator cache) correct me if I am wrong
    2. Is Index entry created based on the outline order. For example I have outline order as Scenarios, Products, Markets then does my index entry be like scenario -> Products -> Markets ?
    3. Does this order has to match with the order of members in FIX Statement of calculation script?
    4. I have 3 sparse dimensions. P (150 members), M (8 members), V (20 members).
    I use substitution variables for these three in the calculation script. And these three are the mandotary things in my calculation script. Now when I see the fix statement, these three are the first 3 parameters of the fix statemtn and since I am fixing on a specific member, placing these three members as the first 3 sparse dimensions in the outline, ill it improve performance?
    In one way, I can say that a member from P, M,V becomes my key for the data.
    Theoritically if I think, may be it will...but in practical terms I don't see any of such thing.. Correct me If my thinking is wrong.
    One more thing, I have a calc script with say around 10 FIX statements and this P,M,V is being used in every FIX statemnts. Since my entire calculation will be only on one P, one M, one V. Can I put everything in one FIX at the beginning and exclude it from remaining FIX statememts?
    5. I have a lot of cross dimensional operations in my calc scripts for accounts dimension (500 + ) members.
    Is there a way to reduce these?
    6. My cube statistics..
    Cube size : 80 GB +
    Block Size : 18 KB (Approx)
    Block density : 0.03 . This is what I am more worried about. This really hurts me.
    This is one of the reason why my calculation time is > 7 hours and some times it is horrible when there is huge amount of data (it takes aound 20 + hours) for calculation.
    I would be looking forward for your suggestions.
    It would be really apprecialble if It is Ok to share your contact number so that I can get in touch with you. That could be of great help from your side.

    I have provided some answers below:
    There are lot of questions in my mind and as it is said you can get the results only by testing.
    ----------------------------You are absolutely right here but it helps to understand the underlying principles and best practices as you seem to understand.
    1. Outline order should be from least sparse to most sparse
    (other reason : to accomodate as many sparse members in to calculator cache) correct me if I am wrong
    ----------------------------This is one reason but another is to manage disk I/O during calculations. Especially when performing the intial calculation of a cube, the order of sparse dimensions from smallest to largest will measurably affect your calc times. There is another consideration here though. The smallest to largest (or least to most) sparse dimension argument assumes single threading of the calculations. You can gain improvements in calc time by multi-threading. Essbase will be able to make more effective use of multi-threading if the non-aggregating sparse dimensions are at the end of the outline.
    2. Is Index entry created based on the outline order. For example I have outline order as Scenarios, Products, Markets then does my index entry be like scenario -> Products -> Markets ?
    ----------------------------Index entry or block numbering is indeed based on outline order. However, you do not have to put the members in a cross-dimensional expression in the same order.
    3. Does this order has to match with the order of members in FIX Statement of calculation script?
    ----------------------------No it does not.
    4. I have 3 sparse dimensions. P (150 members), M (8 members), V (20 members).
    I use substitution variables for these three in the calculation script. And these three are the mandotary things in my calculation script. Now when I see the fix statement, these three are the first 3 parameters of the fix statemtn and since I am fixing on a specific member, placing these three members as the first 3 sparse dimensions in the outline, ill it improve performance?
    --------------------------This will not necessarily improve performance in and of itself.
    In one way, I can say that a member from P, M,V becomes my key for the data.
    Theoritically if I think, may be it will...but in practical terms I don't see any of such thing.. Correct me If my thinking is wrong.
    One more thing, I have a calc script with say around 10 FIX statements and this P,M,V is being used in every FIX statemnts. Since my entire calculation will be only on one P, one M, one V. Can I put everything in one FIX at the beginning and exclude it from remaining FIX statememts?
    --------------------------You would be well advised to do this and it would almost certainly improve performance. WARNING: There may be a reason for the multiple fix statements. Each fix statement is one pass on all of the blocks of the cube. If the calculation requires certain operations to happen before others, you may have to live with the multiple fix statements. A common example of this would be calculating totals in one pass and then allocating those totals in another pass. The allocation often cannot properly happen in one pass.
    5. I have a lot of cross dimensional operations in my calc scripts for accounts dimension (500 + ) members.
    Is there a way to reduce these?
    -------------------------Without knowing more about the application, there is no way of knowing. Knowledge is power. You may want to look into taking the Calculate Databases class. It is a two day class that could help you gain a better understanding of the underlying calculation principles of Essbase.
    6. My cube statistics..
    Cube size : 80 GB +
    Block Size : 18 KB (Approx)
    Block density : 0.03 . This is what I am more worried about. This really hurts me.
    This is one of the reason why my calculation time is > 7 hours and some times it is horrible when there is huge amount of data (it takes aound 20 + hours) for calculation.
    ------------------------Your cube size is large and block density is quite low but there are too many other factors to consider to simply say that you should make changes based solely on these parameters. Too often we get focused on block density and ignore other factors. (To use an analogy from current events, this would be like making a decision on which car to buy solely based on gas mileage. You could do that but then how do you fit all four kids into the sub-compact you just bought?)
    Hope this helps.
    Brian

  • CDF - calc script

    The calc script for the Export cdf shows @Jexport being executed like rollup functions - in that there is no requirement that you have 'member = @Jcdf'.When I try this with a sample cdf, I get an error 'not a CALC command'.How do I get Essbase to recognize that this doesn't need anything on the left side?Harold

    An other question about CDF and Script.I want to export data in a SGBDR , the sample works fine but :Is there a way to keep relationnal database connection open ( to increase performance) and so not to load connection class, open connection for each Essbase member ?X. VDS

  • HPCM: Calc Script Deployment Error: java.lang.indexoutofboundsexception: In

    I am trying to deploy the allocation calc scripts in HPCM and ran into the indexoutofboundsexception. Does anyone know how I resolve this?
    I have successfully deployed the calculation database. This is version 11.1.1.2.
    Cheers,
    Below is the relevant section of the hpm.log file.
    2009-04-07 21:02:06,645 [Thread-16] ERROR com.hyperion.profitability.business.integration.ces.jobs.ProcessCalcscriptsJob: Error processing calc scripts
    com.hyperion.profitability.common.ProfitabilityRuntimeException: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
    at com.hyperion.profitability.data.dao.AllocationDAOImpl.loadAllocations(AllocationDAOImpl.java:129)
    at com.hyperion.profitability.business.mdb.deployment.calcscriptgeneration.CalcScriptGenerationHelper.getInterCellLevelAllocations(CalcScriptGenerationHelper.java:145)
    at com.hyperion.profitability.business.mdb.deployment.calcscriptgeneration.CalculationScriptGenerator.generateCalcScripts(CalculationScriptGenerator.java:397)
    at com.hyperion.profitability.business.service.GenerateCalcScript.generateCalcScript(GenerateCalcScript.java:49)
    at com.hyperion.profitability.business.service.ServiceFacade.calcScriptGenerate(ServiceFacade.java:724)
    at com.hyperion.profitability.business.integration.ces.jobs.ProcessCalcscriptsJob.start(ProcessCalcscriptsJob.java:47)
    at com.hyperion.profitability.business.integration.ces.TaskHandler$AgentThread.run(TaskHandler.java:128)
    Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at com.hyperion.profitability.data.dao.AllocationDAOImpl.extractAllocationDriver(AllocationDAOImpl.java:403)
    at com.hyperion.profitability.data.dao.AllocationDAOImpl.extractAllocationDriver(AllocationDAOImpl.java:352)
    at com.hyperion.profitability.data.dao.AllocationDAOImpl.loadAllocations(AllocationDAOImpl.java:91)
    ... 6 more

    I am working on first profitability application creation. I have performed the following steps till now:
    1. Creating Dimension Library for the Profitability Application. (I haven't put any details in the AllocationType Dimension)
    2. Validate and Deploy the Profitability Application.
    3. Created Staging Table (HPM_STG_STAGE, HPM_STG_ASSIGNMENT...) in Database. These are blank staging tables.
    My question is:
    1. How the data load happens in the Profitability Application.
    2. After creating stages, does it get populated when you create stages? How are you going to populate the same.
    3. Are you able to open the application in Essbase? I can see this through Shared Services but am unable to open the same in Essbase.
    Let me know if you have done things differently than this.

  • Will block size effect the calc script performance?

    Hi Experts,
    I have a cube called RCI_LA:RCI_LA, now I have created calc scripts and working fine. But those calc scripts are taking too much time than expected (normally it should not take more than 15 min but those are taking nearly 1 hr or more some calc scripts.)
    In database properties I found that block size is 155896 B i.e. 152.KB but this size should be 8 to 100 KB & Block density is 0.72%
    If block size exceeds more than 100 KB will it impact the performance of Calc scripts?
    I think answer to the above question is “yes”. In this case what should I need to do to improve calc scripts performance?
    Could you please share your experience here with me to come out of this problem?
    Thanks in advance.
    Ram

    I believe Sandeep was trying to say "Dynamic" rather than "Intelligent".
    The ideal block size is a factor in all calcs, but the contributing reasons are many (The main three are CPU caching, Data I/O overhead, Index I/O overhead).
    Generally speaking, the ideal block size is achieved when you can minimize the combination of Data I/O overhead and Index I/O overhead. For this reason a block size that is too large will incur too much Data I/O, while a block size that is too small will incur too much Index I/O. If your Index file is small, increasing your block size may help, although the commonly acceptible block size is between 8K and 64K in size, this is just a guideline.
    In other words, if you test it with something right in the middle and your index file is tiny, you might want to test it with a smaller block size. If your index file is very large (i.e. 400 MB or more), you may want to increase the block size and retest.
    Ways to increase/decrease it are also many. Obviously, changing the dense/sparse settings is the main way, but there are some considerations that make this a touchy process. Other ways are to use dynamic calc in the dense dimensions. I say start at the top of your smallest dense dimension and keep the number of DIMENSIONS that you use D-C on limited. Using D-C members in a dense dimension does NOT increase the index file, so it could be considered a "free" reduction in block size -- the penulty is paid on the retrieve side (there is no free ride).

  • Regarding Calc Script query

    HI All,
    I having requriement to copy one version to another for some of the specific months.... Do u all have any idea?

    Of course we have ideas. You would use a calc script with a fix statement to do it.
    My answer is about as long as your question because you don't give us any information to help you. Your question is very generic and you don't supply details like the dimensions in your database, what exactly you are trying to do, what is dense and sparse, etc. Given more information, perhaps a more complete answer could be given.

  • Run calc script via business rule

    Hello all,
    I have calc scripts and business rules in my hyperion essbase.
    one of the calc scripts e.g. aggregates some values.
    In the business rule i copied the code from the calc script and this business rule can be executed in the planning tool.
    Now, everytime when i change the code from the calc script, i have to change same things at the business rule.
    And now my question:
    Is it possible to start a calc script with the business rule?
    e.g. content of business rule: execute "calc_aggregate"
    Is there a command?
    Then it would save time and i only have to change the calc script and not both.
    Thanks for your efforts,
    Chris

    1) try to use essbase 9.3 with dataexport command in calc script (this version essbase is compatible with planning versions 9x and 4.1)
    2) you can write (or found in google) UDF function for run system command or (and) export data set
    3) you can run system command from Planning web and run CSC and RUL from essmsh
    ER

  • Can "Planners" run calc script from the Planning web?

    This is probably a really naive question.
    However, can planners run a simple calc script(created in Essbase/AAS) from Workspace/Planning Web? If so what access would they be need to setup in Shared Service?
    Or do we have to convert the calc script into a Business Rule and then grant access to the users?

    John,
    Here are the roles that i assigned my user and he can view/launch the calc scripts from Planning Web without actually being an admin( i think)
    Analytic Servers : server access
    Business Rules: Administrator
    Planning App : Interactive User
    APS : Provisioning Manager
    I would also like to conver the calc script to a BR as suggested, but not sure why i see no users available in the Business Rules-> administration tab.
    As indicated above, the use has been provisioned as a BR admin!
    Also, i tried refreshing the app with filters, refreshing the user list from BR->admin(right mouse), de-provision and re-provision the user! Any ideas??

  • Runtime Calc Scripts

    How can I limit the scope of a script based on a users security profile? For example, if I have a script that is not limited by entities, but I want multiple users who do have limited access to use it and only apply to their entity security definitions, i.e., John only has access to Los Angeles, so when he runs the script it will only calculate for Los Angeles. Currently, I have to maintain several identical scripts, that only differ by entity. Is there a way around this so I only have to maintain 1 script?

    There are several Ways to do it .1. Wether you are running these scripts through Batch File ?Create Dynamical Calc scripts useinf Excel Templates, Easy to create and Easy to develop useing Visual Basic.2. replace strings in Calc Scripts .3. Dynamically change substitution variable through scripts.Let me know if you have nay Questions ?ThanksSreenivas

  • Agg calc script

    Hi
    I need to write a calc script which aggregates current year actual,budget and forecast.
    I have 1 dense and remaining sparse dims, please help me with sample aggregation script.
    Regards.

    This is not a simple question to answer without knowing more about your application but try this for starters:
    FIX("FY13","Actual","Budget","Forecast")
    AGG("SparseDim1","SparseDim2","SparseDim3","SparseDim4");
    ENDFIX
    You may want to use a substitution variable for year.
    I assume dense dim is dynamic calc. You ca't aggregate Year or Scenario as they are in your fix statement, you don't want to aggregate any other non-aggregating sparse dimensions such as Version either.
    You probably need something more tailored to your environment but this should be a good starting point.

Maybe you are looking for