IF calc in outline formula

Hi,
We need to set up a calculation using formula in the outline. The calculation is defined as the following:
IF Revenue = 0, then Net Material % = 0
Otherwise, Net Material % = Net Material/Revenue (Net Material divided by Revenue)
Revenue and Net Material are both base member in Account dimension.
We have probelm with setting up the IF statement with correct syntax so would really appreciate any help on setting the correct formula/syntax in the outline.
Thanks,
CHT

Hi ,
I have to use similar formula that which you used,
(I added a new member in account dimension whichname "Visit") in my case I have to use following formula;
IF("Unit" == 0)
0;
ELSE
1;
ENDIF;
but it gives Syntax error and following message when I tried to varify my formula;
"Unknown Member IF used in queryVisit"
pls help, how could I overcome this problem
Not: My cube is ASO and I added member from Administratio Service Console
Many Thnx,

Similar Messages

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

  • How do you create a comment in an outline formula?

    Does anyone know how to comment out an outline formula? I want to try doing the calc in a script, but if it's slower I don't want to have to recreate the outline formula.

    I had tried using the /* comment */ syntax, but I got an error. It turns out, you must have some active code still in the formula or the parser gives the formula an error. An effective workaround is to leave a semi-colon outside the commented area.Here's the formula I started with:@Allocate(50000, @CHILDREN(Region), Income,,share);I wanted to comment-out the whole thing, so I did this:/*@Allocate(50000, @CHILDREN(Region), Income,,share);*/This gave me a syntax error, but here's the workaround:/*@Allocate(50000, @CHILDREN(Region), Income,,share);*/;Note the semicolon sitting alone on the line after the end of the comment. Odd, but this works.

  • Retrieval performance become poor with dynamic calc members with formulas

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

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

  • Problem in writing outline formula in ASO

    Hi All,
    I am encountering a problem in my ASO cube where in Ending_VendorBalance is the parent of Beg_VendorBalance, VendorBalance_Acquisition and Netflow. We get values for VendorBalance_Acquisition and Netflow through 0 level data but not for Beg_Vendor Balance. Beg_VendorBalance is calculated as the value of last month of Ending_VendorBalance. How can we achieve this using outline formula in ASO?
    Ending_VendorBalance <3>
    Beg_VendorBalance [0: Case  when(is(month.currentmember,Sep)) and  then 0    else]
    VendorBalance_Acquisition (Alias: Vendor balance at acquisition (will not change)) (UDAS: TB_Last)
    NetFlow <3>
    Pls suggest.
    Regards,
    Karan

    One way I can think of is to logically group members under parents in the outline, that way you can simply use the parent name.children.
    Robert

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

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

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

  • How to use Dynamic Time Series YTD on a calc script / member formula?

    Hi,
    I activated Dynamic Time Series on Essbase and would like to use the YTD function of a measure for a certain month.
    I tried to use
    MeasureName->YTD(Dec)
    MeasureName->Y-T-D(Dec)
    But couldn't use it to syntax problems. How can I call this function instead of using @Accum or @SumRange?
    Thank you
    Edited by: Icebergue on 10/Ago/2011 11:07

    I could be wrong, but I don't think you can use DTS members in calc scripts or member formulas. As you probably know, they can be used in Financial Reports, SmartView and Excel Add-in.
    You can create an alternate hierarchy in your Time dimension though:
    Jan (YTD): Jan ->Jan is being a shared member
    Feb (YTD): Feb+Jan (YTD) ->Both Feb and Jan (YTD) are being a shared members
    Dec (YTD): Dec+Nov (YTD) ->Both Dec and Nov (YTD) are being a shared members
    Cheers,
    Mehmet

  • How to format the Nonemptymember function in an MDX outline formula

    trying to use the NONEMPTYMEMBER function to speed up a complicate nested IIF statement in a ASO cube. Cannot seem to get it to verify.
    I simplified it for testing and still could not get it to verify.
    IIF(NONEMPTYMEMBER([Currency].[USD_Rate],[Product].[No Product]),0,2)
    Thanks
    Tom

    Try defining the NONEMPTYMEMBER Funtion at the beginning of the formula.
    Example:-
    NONEMPTYMEMBER [Product] *(you can specify either a single member or member list or you can use NONEMPTYTUPLE for a cross-dimensional member specification)*
    IIF(([Currency].[USD_Rate],[Product].[No Product]),0,2)
    Regards,
    RSG
    Edited by: RSG on Jun 14, 2011 9:21 PM

  • Dynamic calc member formula problem

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

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

  • Getting a Formula Error in Application Library during Deployment

    Hi,
    We're getting an odd error which baffles me... In the app library, we're deploying an app to Planning and get the following error:
    Detail : Deployment update from product:An Exception occurred during Application deployment.: Unable to load the following resource: %RESOURCE_NAME%com.hyperion.planning.olap.HspVerifyOutlineException: Verify Outline failed with the following errors:
         Error [102000000] detected in member "Acct7055": Level 0 virtual members must have a formula associated with them
    In EPMA, that account has a formula and is tagged with HSP_UDF. After deployment, Planning shows correctly the account as dynamic calc, with the formula, and the UDA. But in EAS, the account reverts back to nevershare, with no formula.
    Any ideas welcomed!. thanks.

    I hit this error in Planning for an upper level Account member of type NeverShare. In my case, the upper level member in question need was shared by 2 different planning databases, so Planning was trying to create an XREF formula for the upper level member was of type NeverShare. I resolved this issue by using the UDA member HSP_NOLINK, which tell's planning not to create the XREF formula.

  • Data not replicated with partition and dynamic calc

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

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

  • 6.5 vs 6.2 Dynamic calc member in basis of @allocate function

    I just converted from 6.2 to 6.5 and have run across a problem in the @allocate function. It appears that it does not resolve the dynamic calc member. Formula is:"Curr Fcst"=@ALLOCATE("SumInput"->"Curr Fcst", @remove(@descendants(@currmbr(Accounts)),@Descendants(@CURRMBR(Accounts),-1)), "Consolidated"->"Curr Fcst"->&LactlmonTD, ,share); The problem is that &LactlmonTD - a substitution variable is "MAY YTD", which is a dynamic calc member. The formula works fine for a stored member "May" if you want to allocate based on last month only. This formula worked in 6.2, but does not work in 6.5 that I can see. Any ideas short of storing the data for YTD? I am logging it as a bug with hyperion.

    OK - Hyperion technical support has solved the issue with an "Undocumented feature". I needed to add the following statement to my Essbase.cfg file:CALCFGDEPOPT FALSEThe explaination was as follows:"This is basically to turn off EVENT 28 in Essbae 6.5. In Essbase 6.2 EVENT28 needs to be turned on manually in the config file, while in Essbase 6.5it is automatically turned on."

  • Sparse Dynamic Calc Member

    All,
    Is it better to have a sparse store member and calculating in Calcscript/Rule or sparse dynmic calc member with formula?
    Thank You

    Here's a little background on why sparse dynamic calcs can sometimes (but not always) be bad for retrieval performance:
    - Essbase stores data in one of two types of files - the Index file and the Page file. (there can be many of each type of file, depending on how much data is stored in your cube)
    - The index file stores all of the combinations of sparse members (where there is data). Think of each sparse dimension as a column in the index file.
    - The page file contains "blocks" that are made up of your dense dimension members. Each "cell" in a block is 8 bytes. (a cell being a single combination of members from each dense dimension)
    - Each row in your index file points to one and only one block. (this is why you need one member from every dimension to get to a data value)
    So let's say we have three members in one of our sparse dimensions. For the sake of simplicity, let's say this is the only sparse dimension in the cube.
    - Member "A" is stored.
    - Member "B" is stored.
    - Member "C" is a dynamic calc equal to "A" - "B".
    Question - if you retrieve on member "C", how many blocks does Essbase have to pull into memory? 2 (the blocks for A and B), plus it has to create a block in memory for member "C". (at least I think it creates a block in memory . . . . ) Either way, that's a lot of I/O, relatively speaking.
    If "C" were calculated in batch and stored, the same retrievel would only have to pull a single block into memory - the stored block for C. This is less I/O.
    So why are some dynamic sparse calcs bad and others aren't? It all comes down to how many blocks the retrieval forces Essbase to pull into memory. (FYI this "memory" is really your database caches)
    This is why sparse dynamic calcs like variance scenarios are common. A sparse dynamic calc that compares Actual to Budget doesn't pull a lot of blocks into memory. However, if you set a sparse parent to be dynamic, and it had 100 children, this would be pretty bad for performance.
    If you can visualize this concept, you can performance tune a BSO cube. It's all about I/O.
    Hope this helps,
    - Jake

  • Dynamic Calc'd Member not picking up Sub Var changes  -  11.1.1.3

    Hi,
    We have a Dyn Calc'd member formula using a sub var on a member. When sub var is updated, values in member formula referencing the sub var don't update. We have stop and start the application for it to pick up the new sub var in the member formula.
    any ideas?

    Unfortunately you have to live by the definition in dbag which is in the post that Tim provided the link for but nobody seems to follow links these days :)
    "To ensure that a new substitution variable value is available in formulas, partition definitions, and security filters, stop and restart the application. All other uses of substitution variables are dynamically resolved when used."
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Calc time estimates, anyone?

    I have a 13 dimension database that yields about 20GB of data after calculation.Block size is about 18KThe only calculation I run is a CALC DIM statement (I'd run a CALC ALL but I fix on members from some dimensions). The CALC DIM just consolidates each dimension (no member formulas and all consolidation tags are +)For my sparse dimensions, I have deep hierarchies (two, though, are flat).The database is reset and reloaded with data prior to calculation. Calculation time for one year's worth of data is 6 hours.That can't be right.Without necessarily telling me how to do it, can someone tell me what's the best calc time I should be able to achieve with some performance-tuning?

    The calc time you should be looking after, shoud not exceed 1 hour.There is a way which you can bring down dramatically your calc time -however seeing the number of dims and data volume and considering your hardware, thats just about wright the time.OK, your best card in situations like this, is to use the Dynamic Calc atibute- resource, for upper level sparse members, it works miracles if you can do it wright- not affecting your reporting performance.However maybe there are dependencies in formulas (avrg) etc.The trick is to use the dyn calc in these formulas (make them dense), so they can calculate at the end.Remember the calc order in dyn calc is the oposite of regular agregations.Believe me it can make a huge difference, i use it in situations where depending the polarity of sparse dimension, cuted down the size tenfold and consequently calc times.Unfortunatelly noone is teaching thoroughly this great resource (dyn calc), so do not be scared at the beginning.You can contact me at [email protected] Yannis

Maybe you are looking for

  • Excel macro error after deploying in Weblogic

    Halo, I have written excel macros and it is working fine. but if the same file if i try to open from hyperlink after deploying in Weblogic server , I get the error "error occured initializing the VBA libraries. If Microsoft Visual Basic for Applicati

  • Adobe Flash Player and pluggin 16.0 r0 constantly stops working

    For a couple of days now firefox and adobe flash player/pluggin 16.0 r0 will not function properly at all. If I end up on a site like youtube or other sites with similar functions, I get bombarded repeatedly with this message and can't do anything ab

  • Cannot connect to database using Oracle Forms 10g

    hi, I had installed Oracle 10g database and Oracle Forms 10g on Windows Vista Home Basic. However, I was unable to connect to the database in Oracle Form using scott/scott for database "orcl", with the following error message: ORA-00604: error occure

  • Regarding BADI's after configuring is-Mill producrs

    Hi Experts, In my client they configured Is-Mill products. We are trying to find BADi's for Original order batch against Goods Receipt. So, can any one know the BADi's Please give the guidance on this. Regards, Muralikrishna Edited by: muralipsharma

  • I just signed up for Flash CC today and it keeps crashing.

    I just signed up for Flash CC today and it keeps crashing.