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.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Essbase 9.3 BSO member formula problem

    Hi All,
    I'm working on Essbase 9.3.1.
    We have an issue where a member formula, should use double quotations (") for a few members.
    In the dimension tables these quotes are not present in the formula, but they come up in the outline of the cube.
    All dimension builds are done through AIS because of which I'm in a fix.
    I've only worked on Essbase 7 and I'm not aware if there are any settings that I could look at in AIS to see if these quotes are appended while the dimensions are being built.
    The reason why this is an iss is that the test outline has the quotes, but the production outline does not have them although its the same flat file that is used for both.
    Please help out here.
    Thanks in Advance.
    Regards,
    Anindyo

    Obviously this won't resolve your entire problem, but just to answer the first question you can definitely use e.g. @GENMBRS successfully in the partition definitions for a single BSO cube over multiple ASO cubes in 9.3.1.

  • BSO member formula conversion to ASO MDX

    Hi guys !
    I am trying to convert the following BSO member formula to ASO.
    My BSO member formula is :
    "FPP70" -> "FPP" / "B70" -> "AP";
    In ASO member formula I tried : (FPP70, FPP / B70, AP) but I have a syntax error with '/'
    Can anyone please help me out with this?
    Thanks,
    Jonathan

    oops sorry, I made a minor mistake. you don't need the {}
    It should be
    ([FPP70],[FPP]) /([ B70], [AP])
    If this is a subset of another calculation you would wrap the whole thing in parens
    (([FPP70],[FPP]) /([ B70], [AP]))
    ([FPP70],[FPP] ) is a tuple

  • How to convert this BSO formulas into ASO formulas ?

    I need some help to convert this BSO formulas into ASO formulas:
    BSO formulas:
    12*("Head Count"->"Terminated"/((@PRIOR("Head Count"-> "Total Active & Leave")+"Head Count"->"Total Active & Leave")/2));
    "Head Count" is a member of the Account dimension
    "Terminated" and "Total Active & Leave" are members of the Status dimension
    Existing Active
    New Hire
    Active
    MAT
    STD
    OTH
    Leave
    Total Active & Leave
    Voluntary
    Involuntary
    Death
    Retirement
    End of Temp Assignment
    Terminated
    LTD
    Total Status
    Promotion Within Level
    Promotion to Higher Level
    Promotion
    No Total Status
    All Status
    Status (Dimension)
    In ASO, the formulas will be ??
    Thanks

    Try
    CASE WHEN IS([Period].CurrentMember, [Jan]) THEN
    12 * (([Head Count], [Terminated] ) /
    ((( [Head Count], [Total Active & Leave], [Dec], [Year].CurrentMember.lag(1) ) +
    ([Head Count], [Total Active & Leave])) / 2))
    ELSE
    12 * (([Head Count], [Terminated] ) /
    ((( [Head Count], [Total Active & Leave], [Time].CurrentMember.lag(1) ) +
    ([Head Count], [Total Active & Leave])) / 2))
    ENDTake note this assumes your Year dimension is in descending order
    Year
    --2007
    --2008
    --2009
    If Year is in Ascending order
    Year
    --2009
    --2008
    --2007
    Then you need to change
    [Year].CurrentMember.lag(1) to
    [Year].CurrentMember.lead(1)

  • Bso formula to aso

    BSo formula
    IF(@ISMBR(@IDESCENDANTS ("Health Companies")))
    "H42000.Calc" = (("H40900"->"NG_Opt"+"H41000"->"NG_Opt"
    +"H41100"->"NG_Opt"+"H41200"->"NG_Opt"+"H41300"->"NG_Opt"
    +"H41400"->"NG_Opt"+"H41700"->"NG_Opt")*
    ("NG_11Adj"->"PLAT_00"->"BSEG_00"->"HMHS_00000"->"PROD_000"->"MKT_0000"->"DEPT_00000"->"FAC_00000"->"LAE Rate"));
    ASO formula
    CASE when is (Company.CurrentMember, [Health companies]) Then
    [H42000.calc] = (([H40900],NG_opt + [H41000],NG_opt + [H41100],NG_opt + [H41200],NG_opt + [H41300],NG_opt
    +[H41400],NG_opt + [41700],NG_opt)*
    (NG_Adj.currentmember, Plat_00.currentmember, BSEG_00.currentmember,HMHS_00000.currentmember,
    PROD_000.currentmember, MKT_0000.currentmember,DEPT_00000.currentmember,FAC_00000.currentmember,
    LAERate )
    End
    i am trying to convert bso formula into aso .
    i am getting error message
    Error(1260052) syntax error in input mdx query on line 2 at token '=' NG_21Adj
    i am writing member formula for NG_21Adj and it looks like it is not taking '=' and '+' sign
    can anyone help me with this
    thank you

    Oh (of course). In ASO member formula the calc is for that member, so the equation is not necessary.
    But I'm confused because you said this member formula was on a member called NG_21Adj
    So where does H42000.calc come from?
    Below should work syntactically, but now I am not clear what your objective is. Which member are you trying to calculate?
    CASE WHEN IsAncestor([Health Companies], [Company].CurrentMember, INCLUDEMEMBER) THEN
    (([H40900], [NG_opt]) + ([H41000], [NG_opt]) + ([H41100], [NG_opt]) + ([H41200], [NG_opt]) + ([H41300], [NG_opt]) + ([H41400], [NG_opt]) + ([41700], [NG_opt])) *
    ([NG_Adj], [Plat_00], [BSEG_00], [HMHS_00000], [PROD_000], [MKT_0000], [DEPT_00000], [FAC_00000], [LAERate]) ENDor
    CASE WHEN IsAncestor([Health Companies], [Company].CurrentMember, INCLUDEMEMBER) THEN
    SUM(CROSSJOIN({[H40900], [H41000], [H41100], [H41200], [H41300], [H41400], [41700]}, {[NG_opt]})) * ([NG_Adj], [Plat_00], [BSEG_00], [HMHS_00000], [PROD_000], [MKT_0000], [DEPT_00000], [FAC_00000], [LAERate]) END

  • ASO MDX member formula and performance

    Hi,
    I am doing some testing about MDX formulas and performance. I found a performance issue but I can not understand why is taking so long time a report.
    The situation is:
    I create a report or a MDX query with:
    6 dimensions in row and 1 dimension in column
    rows:
    Period - Filtered using a member
    Year - Filtered using a member
    Relationship Manager - Filtered using a member
    Report Type - Filtered using a member
    Local Relationship Manager - 4400 members level 0
    Global Relationship Manager - 10400 members level 0
    Column:
    Account dimension, only a member
    The member selected for Report Type (RM.Local) has a formula
    My Report Type dimension has 10 members, there is one member where I store data called : RM.Input
    My first test was
    RM.Local his formula is [RM.Input] , the report is run in 1 second
    RM.Local his formula is ([RM.Input],[MTD]) where MTD is a member level 0 store in my view dimension. The report run in 20 minutes. I was not expecting so bad performance when I only pointing at [RM.Input],[MTD]
    Do you consider this time is reasonable when I am using this formula?
    The mdx report is:
    With
    set [_Local Relationship Manager3] as 'Descendants([All Local Relationship Managers], 2)' = level 0 members
    set [_Global Relationship Manager4] as '[Global Relationship Manager].Generations(4).members' = level 0 members
    set [_Period0] as '{[Period].[Oct]}'
    set [_Relationship Manager4] as '{[Relationship Manager].[Dummy1)]}'
    set [_Report Type0] as '{[Report Type].[RM.Local]}'
    set [_Year2] as '{[Year].[FY-2013]}'
    select
    { [Account].[Expenses]
    } on columns,
    NON EMPTY {crossjoin({[_Local Relationship Manager3]},crossjoin({[_Global Relationship Manager4]},crossjoin({[_Period0]},crossjoin({[_Relationship Manager4]},crossjoin({[_Report Type0]},{[_Year2]})))))} properties MEMBER_NAME, GEN_NUMBER, [Global Relationship Manager].[MEMBER_UNIQUE_NAME], [Global Relationship Manager].[Memnor], [Local Relationship Manager].[MEMBER_UNIQUE_NAME], [Local Relationship Manager].[Memnor], [Relationship Manager].[MEMBER_UNIQUE_NAME], [Relationship Manager].[Memnor], [Period].[Default], [Report Type].[Default], [Year].[MEMBER_UNIQUE_NAME], [Year].[Memnor] on rows
    from [DICISRM.DICISRM]

    Ok Try this one
    But here you have to change the MDX formula every month.
    Year
    --FY2009
    --FY2010
    --FY2011
    --FY2012
    Period
    --TotalYear
    ----Qtr1
    -------Jan
    -------Feb
    -------Mar
    Let say if you're CurrentYear  is FY2011 and you're Current Month is March then you're MDX will be
    case when contains([Year].CurrentMember,MemberRange([FY2009],[FY2010])) and contains([Period].CurrentMember,MemberRange([Jan],[Feb]))
    Then
    B
    else
    C
    end
    For the Next month you just have to make a change in the MemberRange I.e.,(Replace Feb with Mar)
    *case when contains([Year].CurrentMember,MemberRange([FY2009],[FY2010])) and contains([Period].CurrentMember,MemberRange([Jan],[Mar]))*
    Then
    B
    else
    C
    end
    I tested it and Its working fine.
    I think this will solve you're problem but there might be a more elegant solution out there.
    Regards,
    RSG

  • Wizard to convert EPMA planning app into ASO cube thorugh EPMA

    Hi All,
    I came to know that in 11.1.2.1 there is a wizard to convert epma planning app into ASO app. I have a requirement and I looked into the oracle documents for more information on this but could not find the right document where I can get more information. Please share any information that you have on converting to ASO app.
    Thanks a lot!

    No John, it is not in EAS and it is through planning. I came to know that it is a wizard that we can navigate thorugh planning and I went through the different documents of 11.1.2 and 11.1.2.1 looking for it but I was not able to find the path.
    Please let me know if you came across this before..

  • Converting BSO Formula to ASO Formula

    ASO Formula
    IIF(IS(Products.CurrentMember,[No_Product]),
    [Payroll Amount]+[Payroll Amount]*([Labor Tax],[No_Entity],
    [No_Company],[No_product]),Missing)
    BSO Formula
    /*IF(@ISMBR("No_Product"))
    "Payroll Amount"+ ("Payroll Amount"* "Labor Tax"->"No_Entity"-
    "No_Company"->"No_Product");ENDIF */
    I had the formula modified and it did work but I have another problem
    now. If you see the attached BSO formula, then the formula says do not
    do anything if the member is not "No_Product".
    How can I do that in ASO. if you see the ASO formula, then it says that if
    the if the member is not "No_Product" then put Missing. if I don't use this
    setting, then the formula does not work but actually we don't want to do
    anything if the member is not "No_product".Please suggest a
    workaround for this.

    Hi,
    If your concern is to avoid the usage of 'MISSING',in the case if its not a "No_Product",then , you rather use the
    CASE in your ASO formula ,rather than IIF.
    ex:
    case
    when(IS([Products].CurrentMember, [No_Product]) )
    then [Payroll Amount]+[Payroll Amount]*([Labor Tax],[No_Entity],
    [No_Company],[No_product])
    end
    Do take care of the syntax.
    Hope this helps you.
    Sandeep Reddy Enti
    HCC

  • Essbase server is hanging due to BSO applications

    Hi All,
    We upgraded from 9.3.1 to 9.3.3 in august and since then we are having issues. We have about 12 BSO applications, Size is 2GB each. After the upgrade when the users do some operations sucn as rerteval or outline edits etc the essbase hangs and we have to reboot to resolve this issue but after sometime (1 hour later) on performing the same operations it hangs again.
    We initially thought it is the server problem, so we migrated all these 12 apps to 3 diferent servers and the other server also started hanging due to these apps. SO this solidifies that there is something wrong in these BSO applications...Any ideas????
    System info: Windows environment
    sever: windows server 2003
    hyp - 9.3.3
    Oracle support also jumped in but could not resolve the issue.
    Any help would be appreciated.
    Thanks!!!

    Have a look on Essbase conf file
    for netdelay and net recount try increaseing 1000 each and look for diffrence
    Also look on avaiable RAM on server. Allot 2 gb per application
    let say you have 12 app then 12*2=24 + 6 Gb i.e=30gb so better get 32gb
    up to my understanding since ram seq goes 8 ,16, 32, 64
    also look at your processor how many core have alloted
    Have a read on :http://docs.oracle.com/cd/E17236_01/epm.1112/esb_dbag/frameset.htm?part_optimize.html

  • Converting BSO formula to ASO format

    Does anyone know how to convert the following to work in ASO?Rolling 12 Month Average Rolling 12 Month Average = (@SUMRANGE (CY, @CURRMBRRANGE(Year, LEV, 0, , 0)) + @SUMRANGE (PY, @CURRMBRRANGE(Year, LEV, 0, 1, 12))) / 12;Thanks

    Hi,
    If your concern is to avoid the usage of 'MISSING',in the case if its not a "No_Product",then , you rather use the
    CASE in your ASO formula ,rather than IIF.
    ex:
    case
    when(IS([Products].CurrentMember, [No_Product]) )
    then [Payroll Amount]+[Payroll Amount]*([Labor Tax],[No_Entity],
    [No_Company],[No_product])
    end
    Do take care of the syntax.
    Hope this helps you.
    Sandeep Reddy Enti
    HCC

  • Need help in converting BSO calc in to MDX in ASO

    Hi,
    Please find the calc that calcs Cash App Write Offs in calc script in BSO cube
    Fix(Feb,FY11,Actual,allocation,@levmbrs("All End Users",0),@levmbrs("All Sold To",0));
    "Cash App Write Offs"
    IF ("Invoice Price Gross Sales"->"All Products"->"BW_Input" ==#missing)
                        "Cash App Write Offs" = "Allocation_Input_Cash_Writeoff";
    ELSE
    "Cash App Write Offs"->"Allocation" = "Product_Pct_of_Invoiced_Sales"->"BW_Input" *"Allocation"->"Allocation_Input_Cash_Writeoff"->"No Product";
    ENDIF
    Endfix
    Please let me know whether the below logic is correct for ASO cube through MDX for the above calc in BSO
    Case When IS([Scenario].currentmember,[Actual]) and IS([Dimension].currentmember,[Allocation]) and IS
    ([Years].currentmember,[FY11]) and IS ([Time].currentmember,[Feb]) and IsLevel([All End Users].CurrentMember, 0)
    and IsLevel([All Sold To].CurrentMember, 0) and ([Invoice Price Gross Sales],[All Products],[BW_Input])=#Missing))
    Then
    [Cash App Write Offs]=[Allocation_Input_Cash_Writeoff]
    Else
    ([Cash App Write Offs],[Allocation])=([Product_Pct_of_Invoiced_Sales],[BW_Input])*([Allocation],
    [Allocation_Input_Cash_Writeoff],[No Product])
    End
    Thanks in advance....
    Edited by: 848657 on Mar 30, 2011 9:40 AM

    hi,
    chk this code.
    CALL FUNCTION 'SPELL_AMOUNT'
    EXPORTING
    amount = amount
    currency = 'EUR'
    filler = ' '
    language = 'E'  => give the language as italian
    IMPORTING
    in_words = amountrs.
    rgds
    anver
    pls mark all hlpful answers

  • Convert BSO to ASO formula.

    "Target Premium - New"="Target Premium - Total New"-@MDSHIFT("Target Premium - Total New",-1,"Years",,11,"Periods",);
    ELSE
    "Target Premium - New"="Target Premium - Total New"-@SHIFT ("Target Premium - Total New",-1);
    ENDIF;
    I have got something like this but it does not get me the correct results
    CASE WHEN IS ([PERIODS].CurrentMember,[JAN]) THEN
    [Target Premium - Total New]-([Target Premium - Total New],[Years].CurrentMember.lag(1),[Periods].CurrentMember.lead(11))
    ELSE
    (([Target Premium - Total New])-([Target Premium - Total New],[Years].CurrentMember.PrevMember))
    END
    IF (@ISMBR("JAN"))
    "Annualized Premium - New"="Annualized Premium - Total New"-@MDSHIFT("Annualized Premium - Total New",-1,"Years",,11,"Periods",);
    ELSE
    "Annualized Premium - New"="Annualized Premium - Total New"-@PRIOR ("Annualized Premium - Total New");
    ENDIF;
    I have got something like this but it does not get me the correct results
    CASE WHEN IS ([PERIODS].CurrentMember,[JAN]) THEN
    [Annualized Premium - Total New] - ([Annualized Premium - Total New],[Years].CurrentMember.lag(1),[Periods].CurrentMember.lead(11))
    ELSE
    [Annualized Premium - Total New] - (PrevMember(Years.CurrentMember, LEVEL), [Annualized Premium - Total New])
    END
    Thanks

    Does any part of it work? If you do get restults at all, can you tell what it's doing? I have identified one issue:
    CASE WHEN IS ([PERIODS].CurrentMember,[JAN]) THEN
    [Target Premium - Total New]-([Target Premium - Total New],[Years].CurrentMember.lag(1),[Periods].CurrentMember.lead(11))
    ELSE
    (([Target Premium - Total New])-([Target Premium - Total New],[Years].CurrentMember.PrevMember))
    END
    The ELSE condition is going to the previous year instead of the previous period, which it should be. It should be written as:
    ELSE
    (([Target Premium - Total New])-([Target Premium - Total New],[Periods].CurrentMember.PrevMember))
    Sabrina

  • Problem working on member formulas in ASO cube

    Hi
    I was asked to convert a planning application BSO cubes into a single ASO cube.I have managed to convert one BSO Cube into ASO through EAS console and added the members in the other BSO cube throgh rulesfile.
    Now i have to write the member formulas for the level0 members of Account dimension.These are very simple formulas like
    if(@ISMBR("New_Seats"))
    "Assets Value"="Total Asset Cost";
    else
    "Assets Value"="Asset_Value";
    endif;
    and
    "Empty_Seats"=(("New Seat Additions"+"Available_Seats")-"Required_Seats");
    This is the first time i am working on ASO.I am getting this error while writing these formulas
    "Error(1260052) syntax error in input mdx query on line 1 at token '=' Empty_Seats..."
    Help me in writing these formulas and also in selecting proper member properties.

    The hierarchy is like
    Account(gen1)
    -> Statistical_Account(gen2)
    ->New Seat Additions(gen3)
    I have tried tthis and the formula is verified successfully
    *([Statistical_Account].[New Seat Additions]+[Statistical_Account].[Available_Seats])-([Statistical_Account].[Required_Seats])*
    if i use *([New Seat Additions]+[Available_Seats])-[Required_Seats]* it is not veryfying throwing some syntax error
    Thanks

  • How to convert number in to Date in column formula in analyses

    Hi All,
    I have one requirement, it needs Number conversion in to date.
    I wrote like this cast(tablename.columnname as Date)
    I'm getting error [nQSError: 22025] Function Cast is called with an incompatible type. (HY000)
    column has datatype Number(10,0).
    Please any one help me.
    Thanks,
    Ashwini K

    Hi,
    Please refer below links.
    http://satyaobieesolutions.blogspot.in/2013/06/dateformat-converting-using-evaluate.html
    http://satyaobieesolutions.blogspot.in/2013/06/date-format-change.html
    Hope this help's
    Thanks,
    Satya Ranki Reddy

  • I need PDF fields to calculate time worked and convert to hours and tenths by set formula

    I have been working on a PDF form which has a "time in" field, "time out" field, "total time" and "accumulated time" fields. I have found a couple of forms online which I tried copying the code and it will not work. There is a formula here that they go by, i.e. 0-3 minutes = 0, 4-9 minutes + .1.
    I found code for the conversion but am a beginner at writing code and I am getting errors in the scripting box which I don't understand.
    Does anyone have code written that would work for the Total Time field that will calculate the time between the in and out fields and convert to a set formula? I can get the accumulated field to work.
    I used this:
    document.write(Math.round(0.60) + "1.0");
    document.write(Math.floor(0.57) + "0.90");
    document.write(Math.floor(0.51) + "0.80");
    document.write(Math.floor(0.45) + "0.70");
    document.write(Math.floor(0.39) + "0.60");
    document.write(Math.floor(0.33) + "0.50");
    document.write(Math.floor(0.27) + "0.40");
    document.write(Math.floor(0.21) + "0.30");
    document.write(Math.floor(0.15) + "0.20");
    document.write(Math.floor(0.09) + "0.10");
    document.write(Math.floor(0.03) + "0.00");
    but am missing code to make it work. I am on Acrobat Pro Extended on a Windows 7 platform.
    Thank you in advance, Annette

    I've developed a script that can automatically add these calculation to
    multiple fields, including the total field.
    Have a look here:
    http://try67.blogspot.com/2011/03/acrobat-calculate-time-differences-in.html
    PS -  document.write() is not a valid method in a PDF.

Maybe you are looking for