Make MDX formula timebased

I have the current MDX formula in my FORMULA property of my dimension file for a member called PQR wich is the parent of ABC
IIF(ABC<0,0,ABC)
It simply states that the value of PQR should be the value of ABC unless ABC is smaller then zero.
This works fine.
However, the customer now wants to apply this formula only to timeperiods prior to 2008. So all calculations of PQR prior to 2008 should follow this formula and from 2008 onwards the negative values are allowed.
I tried (amongst others)
IFF(timeid<20071200,IIF(ABC<0,0,ABC),ABC)
but that doesn't work, probably because i am mixing SQL timeid with MDX syntax. I also tried osme otherthings (especially fiddling around with brackets) but i cannot het this to work.
How can i get this to work ?
Thanks for some insights into the formula jungle....
Help is greatly appreciated
Edwin
SAP Netherlands

Hi Edwin,
you should try something like :
Iif(time.currentmember.name>"2007.DEC" and ABC<0,0,ABC,0)
Pascal
Edited by: Pascal THEUROT on May 26, 2008 8:11 PM

Similar Messages

  • Problem in taking correct Substitution variable in MDX Formula

    Hi,
    We have MDX Formula which takes Substitution Variable as input . Previously we used Hyperion Essbase 9.3.1.3 version and working fine currently we upgraded to 11.1.1.3 version After Upgrade this formula is not taking correct updated value. Its taking previously updated value . To Take the Correct value we are bouncing the Essbase Services then only new Formula is picking the latest Updated value. This is happening only for one formula and rest everything is working fine. Can you please tell us is there any bug or where is the problem is ?
    Thanks,
    Naresh.

    The Database Administrator's Guide and the Essbase Technical Reference are available through the documentation portal:
    http://download.oracle.com/docs/cd/E17236_01/nav/portal_3.htm
    Both the Database Administrator's Guide and the Technical Reference are searchable on an exact phrase, to find the source of the extract John provided.
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_dbag/dotcreat.html#dotcreat1053369
    See section "Setting Substition Variables".

  • Error in execution of mdx formula in ASO::  Recursion limit[31] reached

    Hi,
    We are implementing the ASO cube using the Hyperion Essbase version 9.3.1.
    Few dimension members need to have formulas which we are writing using the mdx.
    Mdx formulas are successfully verified but at retrieval time, it is throwing the following error-
    Error executing formula for[604120](line 0) : Recursion limit[31] reached.
    In outline, mdx formulas has been assigned to member name '604120' and '604520' in 'Report Line (P/L)' dimension as per business requirement.
    Formula on member '604520' = [604120]-[604320] +[604220]
    And
    Formula on member '604120' =
    IIF(
    IS([Time].CurrentMember, [Jan]),
    ([Report Line (P/L)].[604520], [Dec], [Year].CurrentMember.PrevMember),
    ([Report Line (P/L)].[604520],[Time].CurrentMember.PrevMember, [Year].CurrentMember)
    On further investigation, it seems there is dependencies in formulas. And it need to be rewrite.
    I am new in mdx queries. Please help me to write. Quick respone will be appreciated.
    Thanks & Regards,
    Mohit

    http://essbase.ru/ wrote:
    Check Essbase CFG
    - it's Error from settings limitisWhich setting are you referring to for ASO.
    Cheers
    John
    http://john-godowin.blogspot.com/

  • Inconsistent results with MDX formula

    Hi. I'm converting a BSO cube to ASO, and it has dynamically calculated formulas that I'm converting to MDX. I have a formula that is supposed to accumulate an account (Order Intake) through the months and years until it gets to the current month of the current year (set by substitution variables) and then just carries that balance forward until the end.
    This is the formula I wrote in MDX.
    IIF( Count( Intersect( {MemberRange([Years].[FY95], [&Auto_CurYr].Lag(1))}, {Years.CurrentMember} ) ) = 1,
    IIF(CurrentMember ([Period]) = [Jan],
    [Order Intake] + ([Contract Value],[Adj],[Years].CurrentMember.PrevMember),     
    [Order Intake] + ([Contract Value],[Period].CurrentMember.PrevMember)
    IIF( CurrentMember ([Years]) = [&Auto_CurYr],
    IIF( CurrentMember ([Period]) = [Jan],
    [Order Intake] + ([Contract Value],[Adj],[Years].CurrentMember.PrevMember),
    IIF( Count( Intersect( {MemberRange([Period].[Feb], [&Auto_CurMoNext_01].Lag(1))}, {Period.CurrentMember} ) ) = 1,
    [Order Intake] + ([Contract Value],[Period].CurrentMember.PrevMember),
    ([Contract Value],[Period].CurrentMember.PrevMember)
    ([Contract Value],[Adj],[Years].CurrentMember.PrevMember) /*This is the statement that evaluates for months and years after the current month and year*/
    The inconsistent results are as follows:
    I have a spreadsheet that has the years and months across the top in columns. The substitution variables are set to FY09 for the year and Oct for the month. The formula works fine until it gets to Jan of FY10, at which point it produces a number out of thin air, and carries that incorrect number through to the end.
    When I put the years and months into my rows, however, and then drill down on the months, I get different results. Not only different, but different results at different times, too. When I first drilled, all results were correct. Now when I drill, it produces a random number in October of FY09 (not entirely random, but actually double what it's supposed to be), then #missing in Nov of FY09, then the correct number thereafter. Same exact data intersection on both spreadsheets, different results. I've retrieved over and over again, and the only time it might change is if I re-drill. I've used both Essbase Add-in and Smart View with consistently inconsistent results.
    Has anyone ever encountered this sort of behavior with an MDX formula?

    Well, I finally got a formula that works. I did end up using a combination of CASE and IIF, but I never did figure out how to deal with summing up ranges of data correctly, accounting for changing substitution variables, so I had to do a lot of hard coding by month. For instance, I couldn't ask it to sum([Order Intake],[Jan],[&Auto_CurYr]:([Order Intake],[&Auto_CurMo],[&Auto_CurYr]). Although it validated fine, when I tried to retrieve it said members were not of the same generation, presumably because my substitution variable could potentially be a non - level 0 month (it worked if I hard coded the end month). Also, I really don't like the MDX version of @LSIBLINGS and @RSIBLINGS.
    But this works.
    CASE
    When Count( Intersect( {MemberRange([Years].[FY95], [&Auto_CurYr].Lag(1))}, {Years.CurrentMember} ) ) = 1
    THEN IIF(CurrentMember ([Period]) = [Jan],
    [Order Intake] + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Feb],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Feb]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Mar],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Mar]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Apr],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Apr]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [May],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[May]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Jun],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Jun]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Jul],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Jul]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Aug],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Aug]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Sep],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Sep]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Oct],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Oct]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Nov],
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Nov]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Dec]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember))
    When CurrentMember ([Years]) IS [&Auto_CurYr]
    THEN IIF(CurrentMember ([Period]) = [Jan],
    [Order Intake] + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Feb] AND CONTAINS([Feb], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Feb]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Mar] AND CONTAINS([Mar], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Mar]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Apr] AND CONTAINS([Apr], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Apr]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [May] AND CONTAINS([May], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[May]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Jun] AND CONTAINS([Jun], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Jun]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Jul] AND CONTAINS([Jul], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Jul]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Aug] AND CONTAINS([Aug], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Aug]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Sep] AND CONTAINS([Sep], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Sep]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Oct] AND CONTAINS([Oct], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Oct]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    IIF(CurrentMember ([Period]) = [Nov] AND CONTAINS([Nov], {MEMBERRANGE([&Auto_CurMoNext_01].FirstSibling, [&Auto_CurMoNext_01].Lag(1))}),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[Nov]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember)),
    Sum(CrossJoin({[Order Intake]}, {[Jan]:[&Auto_CurMo]})) + sum(([Order Intake],[YearTotal],[FY95]):([Order Intake],[YearTotal],[Years].CurrentMember.PrevMember))
    WHEN CONTAINS([Years].CurrentMember, {MemberRange([&Auto_CurYr].Lead(1), [Years].[FY15])})
    THEN ([Contract Value],[Adj],[Years].&Auto_CurYr)
    END
    Thanks for looking at it, Gary, I appreciate it.
    Sabrina
    Edited by: SabrinaD on Nov 18, 2009 2:29 PM
    Edited by: SabrinaD on Nov 18, 2009 2:31 PM
    Edited by: SabrinaD on Nov 18, 2009 2:34 PM
    Edited by: SabrinaD on Nov 18, 2009 2:35 PM

  • VARIABLE IN MDX FORMULA

    Hello,
    I have a package which only rund a logic,
    this package enables to select an entity on which the logic will run
    so in my package assign parameters component , i have my prompt
    PROMPT(SELECTINPUT,%MY_ENTITY%,"Enter the entity",,"%ENTITY_DIM%")
    and then
    TASK(Execute formulas,USER,%USER%)
    TASK(Execute formulas,APPSET,%APPSET%)
    TASK(Execute formulas,APP,%APP%)
    TASK(Execute formulas,SELECTION,%SELECTIONFILE%)
    TASK(Execute formulas,FORMULASCRIPT,"*FUNCTION MYENTIY=%MY_ENTITY%")
    TASK(EXECUTE FORMULAS,LOGICFILE,TEST.LGF)
    in my logic, i want to use the entity put in the package in a mdx formula,
    *MEMBERSET(%Ent_R%,"DESCENDANTS(FILTER([ENTITE].MEMBERS,[ENTITE].CURRENTMEMBER.PROPERTIES("ENTITE_REF")=MYENTITY),99,LEAVES)")
    the variable MYENTITY isn't working, so my variable %Ent_R% is corrupted too
    how can i change the syntax in order to include MYENTITY parameter please
    i have tried so many things, i'm stuck
    thanks in advance
    regards
    CL

    Hello,
    First of all, most sincere thanks for replying, i'm stuck and blocked and beginner in logic and have no collegue around me to advice me or help me, and i've tried so many things that i end up mixing them
    the problem is that the follwing syntax
    *MEMBERSET(%Ent_R%,"DESCENDANTS(FILTER([ENTITE].MEMBERS,[ENTITE].CURRENTMEMBER.PROPERTIES("ENTITE_REF")=%ENTITY_SET%),99,LEAVES)")
    isn't validated when i do a "validate and process logic" it rejects me by giving this message
    error in step 1 of QueryCubeAndDebug:-2147217900 Formula error - syntax error - token is not valid: "{DESCENDANTS(FILTER([ENTITE].MEMBERS,[ENTITE].CURRENTMEMBER.PROPERTIES("ENTITE_REF")=^%^ENTITY_SET%),99,LEAVES)}"
    when i put the variable name around commas like ' ' or " "
    this way  for instance
    *MEMBERSET(%Ent_R%,"DESCENDANTS(FILTER([ENTITE].MEMBERS,[ENTITE].CURRENTMEMBER.PROPERTIES("ENTITE_REF")="%ENTITY_SET%"),99,LEAVES)")
    the logic validates, the package runs but no data are written
    in the debuglogicfile, it seems that it doens't recongnize the fact that it is a variable, and put it as string
    i really don't know how to put it

  • Essbase 11.1.2.1 - Converting BSO Member Formula to ASO MDX Formula

    Hi all,
    I'm quite new at Essbase and I'm currently using Essbase 11.1.2.1. I have 2 cubes: one is a BSO cube and the other is an ASO cube.
    In the BSO cube, I have an account that has member formula:
    IF(@ISATTRIBUTE("US"))
    ("Sales"->"Budget"->"USD")-("Sales"->"Actual"->"USD");
    ELSEIF(@ISATTRIBUTE("EU"))
    ("Sales"->"Budget"->"EUR")-("Sales"->"Actual"->"EUR");
    ELSEIF(@ISATTRIBUTE("UK"))
    ("Sales"->"Budget"->"GBP")-("Sales"->"Actual"->"GBP");
    ENDIF
    Notes:
    - Sales is an account
    - US, EU, and UK are members of Country attribute dimension
    - Budget and Actual are members of Scenario dimension
    - USD, EUR, and GBP are members of Currency dimension
    I understand that the member formula for BSO and ASO are different. Can anyone please advise me on what the formula should be in ASO cube as MDX formula?
    Thank you very much!

    CASE [Currency].CurrentMember.[Country]
         WHEN "US" THEN ([Sales], [Budget], [USD]) - ([Sales], [Actual], [USD])
         WHEN "EU" THEN ([Sales], [Budget], [EUR]) - ([Sales], [Actual], [EUR])
         WHEN "UK" THEN ([Sales], [Budget], [GBP]) - ([Sales], [Actual], [GBP])
         ELSE 0
    END
    *Note that I am assuming Country is an attribute of Currency based on the information provided.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Need some help with MDX formula

    Hello, I am not finding any good documentation on MDX formulas, there is a specific one that I need some help with....could someone please elaborate what exactly does this formula mean? thanks.
    (MEASURES.[SIGNEDDATA],
    CLOSINGPERIOD([%TIMEDIM%].
    [%TIMEBASELEVEL%]))

    If new MEASURE gets added to Measure's table , in BPC Client , etools->client Options-> Refresh Dimensions should get the new measure into the CurrentView .IF not try  etools->client Options-> Clear Local application information .
    Formula 2 : 
    (MEASURES.SIGNEDDATA,
    CLOSINGPERIOD(%TIMEDIM%.
    %TIMEBASELEVEL%))
    This formula is used to retrieve AST & LEQ account values.
    If current time member is at monthlevel ,ie  ClosingPeriod of  2011.FEB is  the current member it self ,and would retrieve 2011.FEB value.
    If Current time member is at quarter level then ClosingPeriod of 2011.Q1 is 2011.Mar  ,and would retrieve 2011.MAR value.
    If Current time member is at year level then ClosingPeriod of 2011.TOTAL is 2011.DEC  ,and would retrieve 2011.DEC value.
    Formula 1 :
    MEASURES.SIGNEDDATA
    Irrespective of the level of the Time , MEASURES.SIGNEDDATA would retrieve current Time member value.This formula is used to retrieve INC & EXP account values
    if current time member is at month level,2011.FEB , 2011.FEB value is retrieved.
    if current time member is at quarter level,2011.Q1 , 2011.Q1(JANFEBMAR)  value is retrieved.
    if current time  member is at year level,2011.TOTAL , 2011.TOTAL(JAN,FEB,....,DEC)  value is retrieved.
    Hope this helps.

  • MDX Formulas

    Are MDX formulas used only in ASO cubes or we can use it BSO as well.
    I looked into the Essbase DBAG, But could not find the right information. If anybody know about this, please clarify.
    Thanks for the Help in advance..........

    Hi ,
    One can use MDX script editor to retrive data from BSO cubes .
    But, As far as the member formulas of the ASO outline is concerned , we got to use the MDX only.
    I have tried this on the 7X version.
    Sandeep Reddy Enti
    HCC
    http://analytiks.blogspot.com

  • Help with MDX formula

    Hi All,
    I have MDX formula which is validating but not producing result, can you guide me in right direction to fix the issue.
    What i am trying to accomplish is?
         View 1 (Raw)                    View 2 (Adjusted)     
    ACT     FCST     Calc          ACT     FCST     Calc
    X     X     X          X     X     X
    0     0     0          0     X     0
    0     X     X          X     0     0
    X     0     X          0     0     0
    If ACT or FCST is '0' in RAW it has replace everything with '0' in Adjusted. else copy Actual and Forecast values to adjusted.
    "case when is ([Raw],[Actuals]) = '0' or ( [Adjusted],[ Forecast]) = '0' then '0' else ([Actuals] = [Raw],[Actuals]) and [ Forecast] = ([Raw],[Forecast])" this is my formula which is validated but i don't see any result.
    Help will be very mush appreciated.
    Thanks in Advance
    Vic..

    Hi,
    I am not sure which member you are trying to write that formula on. It should be on 'Adjusted' member as that is what you want to calculate. I am not sure how your formula got validated - You can try any of these formula or modify your formula on similar lines and it should work.
    CASE WHEN ([Raw], [Act])= 0 OR ([Raw], [Fcst]) = 0
    THEN
    0
    ELSE
    [Raw]
    END
    IIF ( ([Raw], [Act])= 0 OR ([Raw], [Fcst])= 0 , 0 , [Raw])
    Regards,
    Sunil
    Edited by: sunil k on Jan 17, 2013 2:28 PM

  • Doubt Reg How to implement MDX formula in ASO Cube

    We are using Essbase 7x for implementing ASO application, We are struck in implementing MDX formuls in Accounts dimension members. As per the requirement
    We have to calculate
    Cost Per kilo[Total shipment Cost]/[Billed Weight]
    Fuel Surcharge cost per kilo[Fuel Surcharge cost]/[Billed weight]
    Need to implement these formula's for the mentioned Accounts members. As we are new to this concept plz let me know if
    we wrote these in MDX editor and how to link these to the particulr mrmber in the dimension.please help me out in implementing these formula's

    Hi,
    1. For ASO cubes also, you can have forumulas on your cube's outline individual members.
    2. If the dimension is "accounts" you can write MDX forumulas on the members of the accounts dimension
    3. The two members 'cost per kilo' and 'fuel surcharge cost per kilo' and their respective forumulas are Total shipment Cost/Billed Weight and Fuel Surcharge cost/Billed weight.
    4. If you have the members like Total shipment Cost,Billed Weight and Fuel Surcharge cost, create 2 account members for which you need to write formulas , then go to 'formula' tab of these members and write a simple division formula.For ASO cubes, no need to end them with semi colon.
    One can use MDX editor to write down queries and extract data too, i.e queries . More of it can be found in the DBAG .
    Sandeep Reddy Enti
    HCC
    http://hyperionconsultancy.com/

  • Need help with MDX formula to sum months

    I was able to use Gary C's suggestion to sum daily data for 90 days with the following formula.
    SUM( TAIL( TUPLERANGE(
    ([FY_2006], [01/01]), ([Scenario].CurrentMember,
    [Time].CurrentMember) ), 90 ))
    This formula works great - even when crossing different years in the Scenario dimension.
    I'm now trying to sum the prior 3 months using a similar TupleRange command:
    SUM( TAIL( TUPLERANGE(
    ([FY_2006], [JAN]), ([Scenario].CurrentMember,
    [Time].CurrentMember) ), 3 ))
    I'm running into an issue due to additional parents in the time dimension. January and February of the current year are pulling data from the children of another parent in the Time dimension as opposed to Nov and Dec from prior year.
    My Time dimension is setup as follows:
    Time
    |
    |-Total Year
    | |-Jan
    | | |-01/01
    | | |-01/02...
    | |.
    | |-Feb... Dec (each month has days as children)
    |.
    |.
    |-QTDs
    | |- Various parents and shared children
    |.
    |-Weeks
    | |-FY08_Weeks
    | |.
    | |-FY09_Weeks
    Using the previous TupleRange command, when I retrieve data for Jan it retrieves data from the following members:
    Jan
    FY08_Weeks
    FY09_Weeks
    Any suggestions on how I can write the MDX formula so my 3 Month formula pulls in the correct members? (That is, it should only pull in members from the 'Total Year' parent.)

    In ASO architecture, if you want to aggregate these multiplied values you probably want to do the multiplication prior to loading so the sum of the products rolls up. Right now, you can't have the multiplication done in MDX and then have ASO aggregate. It's mostly a performance concern; you can do the multiplication and aggregation in one formula if you want.<BR><BR>The basic multiplication is just<BR> [Standard Material Per Unit] * [Units Sold]<BR><BR>To aggregate, you need to wrap in additional clauses. I've attached code here so you can see it with indenting- I believe that consistent indenting helps catch a lot of syntax errors.<BR><BR>You will also need to assign the formula to a new member (account or otherwise).<BR><BR>If you only want to see the values at level-0 and you don't want them aggregated, it's very easy:<BR><BR>iif (<BR> [Product].CurrentMember.[LEVEL_NUM] = 0,<BR> [Standard Material Per Unit] * [Units Sold],<BR> MISSING<BR>)<BR><BR><BR>

  • LGF VS MDX FORMULAS

    Hi gurus;
    What is the difference between MDX and Script Logic formulas?
    For example
    Can i write below formulas in LGF ?
    function MOVEMENT(%ACCOUNT%)
    iif(COUNT(%Time_Dim%.Children) =0,
    %ACCOUNT%-(%ACCOUNT%,%Time_Dim%.PrevMember),
    SUM(Descendants(%Time_Dim%.CurrentMember,99,LEAVES)))
    *endFunction
    If yes, Whats the meaning of 99? and Children
    The another question is IIF MDX Formulas
    Iif([Time].CurrentMember.Children.Count=0, [Account].[AccRec] - ([Account].[AccRec], [Time].PrevMember), SUM(Descendants([Time].CurrentMember, [Time].[Month], LEAVES)))
    I want to forward datas to month 8 but if month 8 is not empty , do nothing.
    My account dimension name which want to forward is : SALES_K
    account dimension member which want to forward is : K1005
    My Time dimension name : TIME current month:8 id name: 2010008
    Time period id : 2010001 , 2010002 , 2010003 ...
    Many thanx for your replies
    Have a nice day

    Hi Breathe
    You can write/use this formula.
    In your AccountRec Account calculation.,the formula indicates the sum of all receivables of all months  as per the Time Dimension, by arriving the diference of prevous month and current month.
    It starts with the identifying the data as per your Time dimesnion (from Period Id-Parent and Children), and it sum up the data of all the months i.e, all Children( ex: Time period id : 2010001 , 2010002 , 2010003 ... 2010008)
    The data will not be available at Parent level, Hence the iteration of Children calculation count will be 0 and it starts from next child in the list.
    In this statement, the count 99 indicates the number of all iterates to run the calculation formula till the end of the list as per the number of children( depends on number of child months you have defined under one parent year, in TIME Dimension) it has to calculate, as per your formula(SUM(Descendants(Time.CurrentMember, Time.Month, LEAVES)))
    for more information on the logic MDX formula, please refer the below SAP help:
    http://help.sap.com/saphelp_bpc75_nw/helpdata/en/f8/aac4ccf5a34fcdb40ba3e508a0ae0e/frameset.htm
    Hope this will help you a lot.
    A good question:) Breathe!!!
    Thanks & Regards
    ukraghu

  • MDX formula help

    The formula below works just fine but I want to use a UDA driven member in Member Range and need help.
    IIF(
    Count(
    Intersect(
    {MemberRange( [Jan],[Apr] )},
    {[Time].CurrentMember}
    ) = 1, [Actual], [Forecast])
    I tried with
    IIF(
    Count(
    Intersect(
    {MemberRange( [Jan],UDA([Period],"CurrMonth") )},
    {[Time].CurrentMember}
    ) = 1, [Actual], [Forecast])
    but I get an error Error(1260052) - Syntax error in input MDX query on line 4 at token ')' CalcMbr
    not sure why is this not working - I think UDA() can result in a set but member range is expecting a member only??
    Please suggest any ideas to correct the code.

    also tried with {[Jan]:UDA([Period],"CurrMonth")}
    instead of {MemberRange( [Jan],UDA([Period],"CurrMonth") )} - but no luck
    Any suggestions?

  • I want to make a formula, but I don't know how!

    Hello people! I'm currently creating a chart to manage my school grades in iWork Numbers 09'. Well, the things is: there are some marks that replace others, for example:
    P1
    P2
    R1
    Final
    8
    7
    x
    =AVERAGE(P1, P2)
    What I want to do is: if R1 > P1, then, substitute it in the final average. Can anyone help me how to make out this formula? Is this possible to do or I'll always have to do it manually?
    Thank you in advance.

    I tried this, I think i've almost reached what i was looking for. Finally Thank you!

  • MDX Formula - Not Getting the Desired Results

    Hi All,
    I have the following formula that I am using to calculate the "Average Daily Volume MTD" but if I drilldown into the Products dimension then I don't see any values. It seems like it's only calculating the values at the top level (GEN1).
    CASE
    WHEN
    IsLevel ([Time Periods].CurrentMember, 0)
    THEN
    Sum(CrossJoin({[Trade Quantity]},{FirstChild(Parent([Time Periods].CurrentMember)):([Time Periods].CurrentMember)}))
    Sum(CrossJoin({[Trade Days Input]},{FirstChild(Parent([Time Periods].CurrentMember)):([Time Periods].CurrentMember)}))
    WHEN
    (IsLevel ([Time Periods].CurrentMember, 1))
    THEN
    [Trade Quantity] / ([Measures].[Trade Days Input])
    ELSE
    Missing
    END
    I tried to insert the another condition in the WHEN clause,
    AND IsAncestor([Products], [Products].Dimension.CurrentMember, INCLUDEMEMBER)
    but it still doesn't give me any values.
    Can anyone please help me out here?
    Thanks

    Hi Dighe,
    Thanks , I have tried that , but its not working.
    What is happening that , with every setting system is unable to filter batch .
    For each material it selects all the batches in query2 .
    If I try to jump from batch1 still it displays all the batches.
    If I use only the Batch in the assignment it dispalys all the rows of the query  so its evident that there is no filter applied at the batch level , I tried all the combination , single value , P , E , Infoobject etc. But it remains same.
    Any guess???
    Thanks.

Maybe you are looking for

  • Getting the Outstanding Trade Receivables of a Customer

    Hi SAP Experts, I am trying to make a report to show the outstanding trade receivables of a customer based on his payment terms. I have a few questions I want to ask to all of you: 1. Can a direct FI invoice for a customer be partially collected? If

  • How to remove the a report from Transport

    Hi Have CR in transport and the CR contains many reports. a) If  i want to remove one report from that, plese tell wht are the steps do i need to follow. b)  if i want to remove entire transport request,Plese tell how to remove  the transport c) also

  • Issue with Applications, file paths, mobile accounts in snow Leopard OD

    Hello Everyone, The Facts: 2 x Xserves running Snow Leopard 10.6.2 Server (1 is a Open Directory Master, the other a backup/slave) About 20 end-users running 10.5.8 Leopard and 10 end-users running 10.6.2 Snow Leopard on MacBook Pro laptops. All lapt

  • Playback to Video

    After completing an edited video, I've tried playback to video several times, but with repeated failure. Always the audio abruptly quits about 4 minutes into the show. If I just play the show the audio and video both freeze about 20 minutes into the

  • Differences in creating IDocs by creating and by changing dispatch not.

    Hello experts, we want to create an IDoc everytime we create a dispatch notification (VL01N) and everytime we change it (VL02N). Now we want to add certain QM data to this IDoc and we write this data to the memory and read it in the IDoc processing (