Calc Script Clarification

Hi,
In our Hyperion Planning System there are 7 Dimensions. Two of them are Locations and Accounts.
There is a one script which written earlier which we need to understand as follows,
VAR M1
M1= 9998;
FIX(Budget,FY09,Monthly,P000)
FIX(Jan)
+"Location A"+
+(+
IF (M1 = 9998)
+"Finance Charge" = "Finance Charge" * 100;+
ENDIF;
+)+
ENDIFX
ENDFIX
Please let us know the propose of having *"Location A"* before the IF statement

Nilaksha,
You're looking at an Essbase calc script/Hyperion Business Rule and within that, a member calc block.
Member calculation blocks are started with a member, i.e., "Location A", then a left parentheses, then code, then a right parentheses.
What's weird about a member calc block is that you could write it to use just the account you want to calculate, i.e., "Finance Charge", or another member from the same dimension. Why would they be different? Perhaps originally Location A was calculated along with Finance Charge and then got removed? <--That seems likely, as you can assign values to more than one member in a member calc block.
It's confusing -- you would think that you'd only be able to write to one, but that isn't so.
"Location A"
IF (M1 = 9998)
"Finance Charge" = "Finance Charge" * 100;
"Location A" = something * something ;
ENDIF;
)What's also interesting about calc member blocks is that you don't need to assign the member on the left hand side of the equals sign for the member defined in the block such as:
"Finance Charge"
IF (M1 = 9998)
"Finance Charge" * 100;
ENDIF;
)It's basically like taking a formula out of the outline and putting it into a calc script.
One last thing -- Essbase calc script variables (M1) can only be used within member calc blocks -- unfortunately not elsewhere.
Btw, I assume your example was redacted for public consumption, as it always fires with M1 is always equal to 9998.
Regards,
Cameron Lackpour

Similar Messages

  • How to make a calc script on a dense dimension ?

    Dears,
    I want to make a calculation script on a dense dimension where :
    - I want to get an input from a member, then make a mathematical calculation , then populate the result in another member at the same dimension .
    For More Clarification :
    I have the following fix
    CALC ALL ;
    FIX ("SAR","Working.V01","Budget2012","FY12","G_10","NM_CAT01","Employee General","BegBalance")
    "Internal Transportation" = "Monthly Transportation"*30 ;
    ENDFIX
    -Internal transportation and monthly transportation are 2 members on FB_account dimension (dense dimension) .
    Waiting for your response, Thanks in advance.

    Dear ,
    I appreciate your feedback . But, My problem is that after executing the calc script , No calculation happens .
    by another means ,
    -If I wrote "Internal transportation" = 500 ; --> It put 500 in it
    -If I wrote "Internal transportation" = "Internal transportation" * 100 ; --> No calculation happened but it executed successfully
    -if I wrote "Internal transportation" = "Monthly transportation" = 500; --> No calculation happened but it executed successfully
    I don't know Why ???

  • How do you stop multiple users executing the same calc script at the same time?

    We have an issue when  users uplaod a spreadsheet and then run a calc script. at one time we have multiple exectuions of the script running.
    This slows up the system and we have to go cancel all the executions and run it again.
    Can we stop this and put them on a queue, so only one execution of the calc happens at one time. Or stop multiple executions getting submitted at all.

    You could use EXCLUSIVECALC to stop more than one calc running at the same time, although this will apply to all applications on your server.  And it doesn't just stop the same calc being launched twice.  Easier than the alternatives I can think of though, if it works for you.

  • @ATTRIBUTESVAL works properly in Calc script but not in Member Formula.

    We are using Essbase 11.1.2 –
    "Global_Period" is a Dynamic Calc Member. Below is its Member Formula:
    "ProjType " is an attribute (text) dimension.
    "Global_Period" ="ValidAccount";
    IF (@ISLEV ("Total_Expenses", 0) AND @ISMBR("HSP_InputValue") AND @ISLEV ("Version",0) AND
    @ISMBR("No_GL_Account") AND @ISLEV ("Scenario",0) AND @ISLEV ("Years",0) AND @ISMBR ("Local")
    AND @ISLEV("Tot_Org",0) AND NOT @ISIDesc ("Service_Division") AND @ISLEV("Tot_PRJ",0) )
    "Global_Period"->"No_GL_Account"-> @CURRMBR ("Projects") =
    1* "ValidAccount"->"Global_Version" ->"Global_Scenario"->&Budget_Year->"Global_Entity"->
    "No_GL_Account"->"HSP_InputValue"->"Local"->
    @MEMBER(@NAME(@CONCATENATE ("Proj_",@ATTRIBUTESVAL("ProjType"))));
    ENDIF
    The above Member- Formula is failed to work when opening a Data Form that contain "Global_Period".
    The error messages in the log file are as follow:
    [Thu Mar  1 16:55:39 2012]Local/Projects/Plan1/admin@Native Directory/1122748736/Error(1200370)
    Error executing formula for [Global_Period] (line 1): attempt to cross a null member in function [@X]
    [Thu Mar  1 16:55:39 2012]Local/Projects/Plan1/admin@Native Directory/1122748736/Error(1200370)
    Error executing formula for [Global_Period] (line 0): attempt to cross a null member in function [@_VAL]
    When converting the "Global_Period" to be a Store member.
    The Calc Script below is exactly equivalent to the Formula, and run perfectly with no Errors.
    "Global_Period" ="ValidAccount";
    FIX ("HSP_InputValue", "Local","No_GL_Account", @RELATIVE ("Total_Expenses", 0),
    @RELATIVE ("Version",0), @RELATIVE("Scenario",0), @RELATIVE ("Years",0),
    @REMOVE (@RELATIVE ("Tot_Org",0),@IDESCENDANTS ("Service_Division")),
    @RELATIVE ("Tot_PRJ",0))
    SET CREATENONMISSINGBLK ON;
    "Global_Period"
    ("Global_Period"->"No_GL_Account" -> @CURRMBR ("Projects")=
    1* "ValidAccount"->"Global_Version" ->"Global_Scenario"->&Budget_Year->
    "Global_Entity"->"No_GL_Account"->"HSP_InputValue"->"Local"->
    @MEMBER(@NAME(@CONCATENATE ("Proj_",@ATTRIBUTESVAL("ProjType"))));
    SET CREATENONMISSINGBLK OFF;
    ENDFIX
    For many reasons we prefer to use the Dynamic Calc Formula for "Global_Period".
    As result of some checking I discover that the problem is with the function @ATTRIBUTESVAL,
    because the formula has worked fine when I replace the @ATTRIBUTESVAL with a string.
    Please help, what is the right way to write the formula in order to make it work.
    Thanks
    Tami Kedem

    Dear Cameron Lackpour,
    Thank you very much, for your reply.
    I'd given it a try, but it didn't help.
    The purpose of this formula is as follow:
    We holds 1's (ones) for allowable combinations of "Project_Type and Accounts", namely, each project type has different list of accounts that are allowed for input.
    I need to populate the input 1's to all projects (and their children) according to its "ProjType".
    The Data forms has periods in columns, thus by putting "Global_Period" (Hide) as the first column, and use "Suppress Missing rows" - for each project (on the "Page") , the form will show just the allowable Accounts in rows.
    (we have around 300 Accounts, 50,000 members in Project dimension and around 25 Types of projects).
    Please help.
    Thanks!
    Regards,
    Tami Kedem

  • IF Statement with multiple ORs in Calc Script

    Hello,
    May I know what is the best way to script the following statement in a Member formula, not calc script (can't use Fix statements)
    If (A->B->C == 1, 3 or 5 AND X->B->C == Value1)
    returnvalue1
    ELSE
    #Missing.
    Basically I am looking for syntax for an IF statement where IF one condition is equal to multiple values as mentioned, then the result is this...
    Help is much appreciated.  Thanks.
    Adi

    You won't be able to use a comma separated list, you'll have to repeat the combination. A->B->C == 1 or A->B->C == 3 so on and so forth
    If you can give a use case scenario or the logic behind it then there are more chances that you might end up with a nicer solution.
    Regards
    Celvin

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

  • Assigning a value to a constant in Calc Script

    Hi All,
    I'm trying to assign a value to a constant in a calc script, but not able to make it work.
    I need to get a user entered value from the database such as Indexation Value, and use that many times in my script. Rather than use:
    "member1"->"member2"->"member3"->"member4"->"member5"
    every time I access the value, I'd like to use:
    VAR IndexVal = "member1"->"member2"->"member3"->"member4"->"member5";
    and then use IndexVal in the script.
    Is this possible?, or do I have to use a substitution variable?
    Thanks.

    It is possible, but the variable and the calculations that use it must exist in the same Calc Bloack statement (Beginning and ending in parens)

  • An error ocurred while running the specified calc script. Check the log...

    Hi,
    I get the following error when I use the "Mass Mllocate" of hyperion planning (11.1.1.3) , specifically when i try to use "Spread Type" and select "Relational Spread".
    I check the log for details, i see the following messages:
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1013162)
    Received Command [Calculate] from user [admin]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1200481)
    Formula for member [FY11] will be executed in [CELL] mode
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1200315)
    Error parsing formula for [FIX STATEMENT] (line 24): invalid object type
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1012001)
    Invalid Calc Script syntax [
    FIX ("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","42300007","CC_054","CIA_063","PPTO","TRABAJO","S_241","S_251","S_252","S_253","S_254","S_255","S_259","S_260","S_227","S_228","S_229","S_230","S_231","S_232","S_233","S_234...]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1200421)
    Error encountered on or after line [25]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1020055)
    Spreadsheet Extractor Elapsed Time : [0] seconds
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1020082)
    Spreadsheet Extractor Big Block Allocs -- Dyn.Calc.Cache : [0] non-Dyn.Calc.Cache : [0]
    But i can not identify which calculation is referenced and that I understand is what is failing.
    Could guide me about that would have to check to find what is generating the error.
    Thanks in advance!!!

    Hi,
    One problem is that I can not identify the script because it was not created by me, as I understand this calc is implicit in planning, only runs when you select the option "mass allocate".
    The published extract was obtained from the log of the application in which the calculation is running, this was extracted from essbase directory that hosts the application.
    Hector Ortega

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

  • Error while running Business Rules and Calc scripts

    We are trying to run calc script in a report and we received the error saying that " An error occured while running the specified cacl script.Check the log for details", we received the similar error when working with Business rules.
    This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path.
    This error persists even after we changed the config file to its original one.
    Hyperion 9.3.1
    Oracle 10g
    Weblogic 9
    Solaris 10 64 bit
    john , please help. i will provide ytou with the exact error messages.. please tell me what this means ---> This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path
    what is that JVMMODULELOCATION for??
    thankyou,
    Rciky

    Hi,
    Here is details on what the JVMMODULELOCATION is :- http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/techref.htm
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Calc scripts are running slow(all of a sudden)

    All of a sudden, for the past few days, we are noticing that all our calc scripts have been running very slow.
    The same scripts used to run much faster earlier.
    Has anybody seen this kind of scenario?
    We did a RAM upgrade on the eas server, and have restarted all services.
    Other than that, nothing has changed in our system.
    Thanks.

    It can be quite common for calcs to slow down over time, but there are some things to do to mitigate this.
    1. Are you using Intelligent Calc? All things being equal (a very broad statement in essbase, since things are never equal) if there is more activity by users, it could affect how many blocks are marked dirty. This is probably not your issue, because a properly written calc wouldn't slow down much for this reason. I had to mention it though because I have seen an installation where their calc was 'Calc All' and they used intelligent calc to create the scope of the calc. (bad, very bad)
    2. Do you perform DB restructures? (either explicity by Restructuring or by exporting level 0, clearing and import level 0 then agg) If this is not done on a regular basis (regular depends on the usage of the cube) then you could be experiencing fragmentation, which increases the size of the database, increasing run times.
    3. Have you just added another fiscal year to the database? More data means bigger database.
    RAM upgrade on the EAS server shouldn't affect calc times (unless essbase services are also running on the EAS server, then there might be something to it).
    Most of these (and other) issues can be mitigated by applying proper scope to your calcs (Fix statements).
    What environment are you running in? Windows or Unix?
    New application?
    What kind of time increases are we talking about here?
    Robert

  • DATAEXPORT - set Dynamic File name in Calc Script

    Hi,
    I have a calc script which exports data from BSO cube to a flat file. Currently I have hard coded file name within the calc script which is
    DATAEXPORT "File" "," "D:/in/CAPXPT_FERC_*FY12*.txt";
    and, for example, I want use the substition varaible to dynamically assign the file name let' say
    DATAEXPORT "File" "," "/u11/oracle/OHDDEVD/in/CAPXPT_FERC *" + &fYear + "*.txt";
    Is there any way to set the export file name dynamically?
    Thanks for your help
    Regards,

    A kind of intriguing thought would be to use the sub var as a way to drive the file name, then grab Robb Salzmann's CDF to dynamically set sub vars on the fly, and then use a RTP to grab that string. I have no idea if this would all tie together, but it would be interesting to try.
    Here's Robb's post: http://codingwithhyperion.blogspot.com/2011/08/create-and-update-substitution.html This is my second in a row post that refers to his CDF -- it is almost like that's my pseudonym except of course I'm too thick to write a CDF.
    Regards,
    Cameron Lackpour
    Edited by: CL on Sep 20, 2011 10:36 AM
    Spelling. Arrgh.

  • Unable to execute the substitution variable in calc scripts in essbase 11.1

    Unable to execute the substitution variable in calc scripts in essbase 11.1.3
    FIX(&CURRVERSION,COLA)
    Unit=units*Listprice;
    dataexport "file" "," "E:\NEW.TXT";
    ENDFIX
    Error: 1200471 Error parsing formula for FIX STATEMENT (line 1): expression expected before [)]
    This is error it throws when executing the calculation script
    I wonder whether its a problem with substitution variable i want to know wat went wrong inside the fix statement
    I have created substitution variable use maxl
    Installed the essbase in custom manner and standlone mode nt register with the shared services ,
    Is this problem with the custom installation of essbase
    Regards
    shenna

    If you remove the substitution variable and replace it with the actual value (whatever that is), does the code work? That will tell you if the issue is around the substitution variable or not.
    John -- First you race Glenn, then you race me -- and you always win. :)
    Regards,
    Cameron Lackpour

  • Peculiar problem with Essbase (Calc Script) - substitution variable / UDAs

    This is odd but I have a script like :
    VAR iloop=1,break=0;
    FIX(<required POV>)
    Loop (20,break)
    VAR Country_total1,Country_total2,Country_total3;
    FIX (@UDA(Entity,@ALIAS(@CONCATENATE("&Country",iloop)))) // &Country1, &Country2 - are substitution variables with UDAs stored as strings
    Statements;
    /* +<statements for calculating total values.. for that country and stored against variables>+ */
    Country_total1=Country_total1+ +<Calculation>+
    ENDFIX
    /* Second part : Now again the calculations stored in the variables are to be stored against specific entities */
    FIX (@UDA(Entity,@ALIAS(@CONCATENATE("&Country",iloop))))
    FIX(@ISUDA(Entity,<Check1>)
    ..... Assign to relevant account
    ENDFIX
    ENDFIX
    ENDLOOP
    ENDFIX
    Now the problem is that the first fix statement works just fine, but the FIX statement in the 'second part' throws an error
    Error: 1200354 Error parsing formula for [FIX STATEMENT] (line 66): expected type [STRING] found [EXTVAR] ([iloop]) in function [@CONCATENATE]
    If I hard code the 'second part' FIX statement to the substitution variable directly - it works just fine.
    How can the first statement work and not the second one ? They are exactly the same.

    Glenn, thanks - I hadn't thought of that :).
    But it still does not entirely solve my problem (please see my previous post depicting a requirement similar to ours )
    - We have lots of countries (50-60+ might be much more) and each country can have multiple entities (3-4 on an average - can go unto 7-8)
    - so good guess would be around 200 entities
    - So say I have to do it for 2 countries only (two entity types). Then I need 4 variables - 2 for each country ('country 1 ET1 total', 'Country 1 ET2 Total')
    When the list is 20 counties - variables become 40 :(.
    - Still leaving aside the 40 variables for a bit -
    There are subsequent steps of calculations which needs to be done based on these totals (which are exactly the same for all countries) - just that we need the correct totals to begin with and the rest is already stored in the DB
    So since I have a different variable for each country - I cannot write one single calculation block to use the variables sequentially one by one (can I ?)
    I might have to write a separate calculation block for each of these countries. (20 separate blocks)
    That's what I was trying to avoid and simplify with the substitution variable (but is not working)
    - Create substitution variables - which would store the alias of the required countries (2/10/20 as many required)
    - Loop through these substitution variables - using them one by one
    - So I just need one single block of calculation with all the variable in the calc script being reused after each country calculation is done
    - and the user need not go into the script, as the only thing that will change are the countries. And he can change it easily through the substitution variable.
    Edited by: Ankur on Jun 27, 2012 12:53 PM

  • 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

Maybe you are looking for

  • Using an iPad2 as a remote device for a PC

    The office I work at is currently going paperless and we are trying to use an iPad2 as a remote device four our PC's, I have everything all hooked up except the laptop has a widescreen and it doesnt show everything on the iPad, any advice on how to c

  • Is there a way to select within if block

    Hi I want to do something like the followings DECLARE      empcnt number ; BEGIN      BEGIN           select count(*)  into empcnt from employees where status = 'L';       EXCEPTION            WHEN NO_DATA_FOUND THEN              empcnt := 0;        

  • WebCamera's available(native) modes

    In flash I can use flash.media.Camera.setMode() to set disired resolution and fps. My question is quite simple: How to get a list of available (native) Camera modes? If it's not possible what is the best practice to let user to change Camera's resolu

  • Which transport protocol is most efficient in JMS adaptor and why..???

    Hi all, Which transport protocol is most efficient in JMS adaptor and why..??? Also can anyone tell me how to check queues in the integration server and in the reciever side....??? If any one explain it rather than providing any link...i will be deli

  • Download link for Acrobat reader

    Hello, I am writing a script which should download the latest version of Acrobat reader and need a  physical link which always refers to the latest version of the application. Could  you provide such link? Thanks in advance