FIX on a UDA

I am trying to FIX on a UDA for the 'Period' dimension. The UDA is defined as either 'open' or 'closed'. The dimension is re-built dynamically each night. When some periods are 'open' and others 'closed', this MAXL works. However, when all periods are 'open' - and there are not any 'closed' periods, the FIX statement doesn't operate as expected and the MaxL runs everything under the FIX. Very odd. Can anyone shed any light on this and offer their best work-a-round? Thxs.
FIX (@UDA("Period", "closed"))
     CLEARDATA "Forecast";
     DATACOPY "Actual" TO "Forecast";
ENDFIX;

Hello There.
Cameron:
I should have been more clear in my original posting.
The intent of the suggestion/alternative was from an "ease" of maintenance (and avoiding the "global fix" problem) perspective rather than a speed/performance one.
Regarding the FIX on the sub vars you are absolutely correct -- it will not make it any faster -- but you could prevent the script from executing the statements within the FIX by using sub vars rather than UDAS (actually you could also create an "opposite" UDA like "open" and use AND/OR/NOT logic within the FIX signature itself if you didn't want to go down the sub var path for whatever reason). As you know the problem the user is having is when there are no UDAs on the members of the period dimension the statements within the FIX execute (older version of essbase and setting option not being available). I was simply stating that you could use sub vars to specify only those months (assuming months are the base level members of the period dimension) that you want the enclosed fix code to operate on -- of course you could/would need another sub var to specify the months to specifically exclude (e.g. &ActMonths, &FcstMonths) and possiibly AND/OR operator within the FIX statement itself if you like. The bottom line is you would make certain each member was always tagged with one of the two sub vars (again - could be done with udas) thereby allowing the script to only operate on those periods that it should. I just looked at the users second entry and it appears the second UDA and conditional route was taken.
In my opinion, a single substitution variable that evaluates to 1 - 12 months (modified in one place - the sub var value-string itself) seems easier than manually or via load rule changing (potentially) up to 12 different period base level members -- once again assuming the base level members are indeed months.
And yes you are correct - datacopy does not work within a conditional -- it would have to be accomplished through another means which I now see the user chose -- and yes you are also correct in that datacopy is very fast and would likely be the hands-down most efficient means.
Gary:
With regard to the "Golden Rule" statement -- it was not my intention to imply that it is a "always do this or perish" rule (although - admittedly - using the term "golden" probably made it appear quite the contrary) -- given the fact that rarely is anything always black/white when it comes to hyperion essbase, particularly in the realm of database calculation optimization. Nevertheless, someone should tell the numerous hyperion instructors/technical consultants (including Ed Roske as he has it clearly stated in his Look Smarter book) that I have worked with in the past. Thanks for the food for thought -- I sincerely appreciate it.
Look Smarter excerpt: "...It is a good rule that can be used even more effectively..."
Outdated/misguided logic below? You decide sports fans...
In general, you should try and only use "FIX" statements on SPARSE dimensions.
FIX statements allow you to take a slice of the database and only perform an action on that slice. If you fix on a SPARSE dimension, then you are limiting the amount of blocks that you are performing the action upon. If you FIX on a DENSE dimension, you are not limiting the number of blocks, but rather just a portion within each block. Using the FIX statement on a dense dimension can cause multiple passes through the same blocks which is very inefficient. On the other hand, the IF statement is well suited to DENSE dimensions because it performs IF logic while the block is in memory.
Example: If JUL then ..., else .... will all be performed in one pass without the need of multiple passes through the blocks. In general, try and use FIX on sparse dimensions and IF on dense dimensions.
Thank you both once again for your comments.
Regards,
todd rebner
http://www.advancedepm.com/
Edited by: todd rebner on Jun 7, 2009 10:32 AM

Similar Messages

  • How can I get the UDA of a current member in a calc scrpt?

    Hi!
    I need to get the UDA of a current meber of a dimension.
    Ex:
    I have the Accout1 and I need to know its UDA. So i can use it like a string. And I need to do it in a dynamic way.
    I hope someone can help me :)
    Thanks in advance.
    Bye

    I don't believe the code sample would work. Vars only store numeric amounts in a calc script. I think you have to work at it backward(If it will work) and perhaps fix on the UDA you want then check to see if it is the member. If you are trying to do something like get the uda for a member then use that uda to create a member name for a subsequent calc good luck. I think you would have to create a custom defined macro or function to do that.
    One note, Vars in business rules can store other things but in a straight calc script they can't
    Edited by: GlennS_2 on Oct 16, 2009 7:29 AM

  • 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

  • Currency UDA in EPMA Planning app

    Hi All,
    Version 11.1.2.0;
    I've just upgraded a Classic multi currency Planning app to EPMA. The currency conversion is a manual HBR rule and was working fine in Classic.
    Now after converting the rule to Calc Manager, I get the validation error for the part where it looks for the Entity members currency UDA.
    ( @ISUDA("Entity","NZD") )
    I believe that Business Rules (HBR) validate the code against Essbase application while Calculation Manager does it against Planning. Can someone point out how I may resolve this issue. I haven't worked with Calc Manager before.
    Cheers,
    Abhishek

    I was pointed to the below bug, which I believe was fixed in some patch for 11.1.1.3. Due to this one would have believed that 11.1.2.0 would have been fine.
    Hsp_Rates dimension members other than Hsp_InputValue and Hsp_InputCurrency (for example, HSP_Rate_USD) do not validate successfully against Planning in Calculation Manager. To work around this, deploy these rules to Planning and launch them without validating them in Calculation Manager (7163027)
    I did deploy the rules without validating and they run successfully when launched from Planning. I'm pretty sure now that this bug has somehow remained in 11.1.2.0
    Thanks for your responses
    Cheers,
    Abhishek

  • How to exclude specified members in a FIX statement used for dataclear?

    Hello,
    I am not a specialist in writing rules, scripts or formulas.
    I want to clear the essbase data base regarding certain entities (for example 0021_LE). This shown Fix statement works.
    But what is the best and most effective (performant) way to exclude certain account members (specific accounts) from the flow command CLEARDATA?
    /* Fix auf Entities */
    FIX ("0021_LE", "0021_DIS")
         CLEARDATA "Dec"
    /* Ende Fix auf Entities */
    Would be glad if somebody would give me any suggestion?
    Thanx
    AEN

    Assuming all the parent level members in the account dimension is dynamic calc.
    Tag all the members to be excluded with uda (say excl) and you can write a script as below.
    FIX ("0021_LE", "0021_DIS")
    FIX(@remove(@levmbrs("Account", 0), @uda("Account", excl)))
    CLEARDATA "Dec"
    ENDFIX
    ENDFIX
    If you dont like to tag the uda and assuming "Account1", "Account2", "Account3", "Account4" are to be excluded from the clearing.
    you can write a script as below.
    FIX ("0021_LE", "0021_DIS")
    FIX(@remove(@levmbrs("Account", 0), @list("Account1", "Account2", "Account3", "Account4")))
    CLEARDATA "Dec"
    ENDFIX
    ENDFIX

  • FIX AND END FIX

    Hi !
    This is nagarja sarma,
    can we use fix and end fix to sparse dimensions ,if yes post an Ex.
    same question in case of if and else if ,for which dimensions we can use it & post the reason.
    thanks,
    Message was edited by:
    user617014

    Hi Nagarja,
    To answer you question , you can fix the sparse dimension( when you fix a dense dimension , IO is not improved , whereas when you fix sparse dimension , IO is greatly reduced).
    ex:
    FIX(@CHILDREN(Sparse dim) AND @UDA(abcd,"abc"))
    xyzer= xyzer * 2;
    ENDFIX
    coming to the if ..else statement, it is used to check a condition ,and arrive at a boolean value i,e true or false , so applicability of dense or sparse does not matter , take care of the condition ,which you give.
    Sandeep Reddy Enti
    HCC

  • UDAs in Spanish?

    Hi
    We implemented Sitehub ( Site Management) Module in R12. We created UDAs ( User Defined Attributes) in this module.
    We installed Spanish language patch and transaction Synchronization patch. But UDAs are still shown in English.
    How to translate these into Spanish?
    Thanks in Advance.

    Please check below metalink notes
    if this is custom object-->Oracle does not provide translations for any custom objects -  See Section 7 of MOS Doc 393861.1 (Globalization Guide for Oracle Applications Release 12)
    FRC implementaion issues
    How to translate Attribute Sets
    How to compile the untranslated menus after implementing NLS (Doc ID 417340.1)
    Troubleshooting Incorrect Translations with FNDLOAD (Doc ID 299080.1)
    How to resolve NLS translation issues in an Ebusiness Suite 11i and R12 environment [ID 394112.1]
    But UDAs are still shown in English.
    I tried to some of metalink notes to convert, it does not help much,later i worked with oracle support, fixed the most of issues.

  • Level 0 descendants of UDA member

    Hi,
    I want to fix on all the level 0 descendants of a member with the UDA "A". The problem is that I have multiple members with that UDA, so @RELATIVE won't work.
    Any ideas?
    Thank you,
    Adina

    Ok so you have had the answer....twice now!
    I think we're assuming these 4 members are at the same level, all with the same UDA 'A'.
    Therefore nothing, apart from member names, nothing distinguishes one from the other. So in order to achieve the result you're looking for, you are forced to add a further UDA to the member upon which you wish to apply that action.
    Add a UDA to indicate the @RELATIVE function will apply to it and you have the functionality you're asking for.
    Steve
    Edited by: Steve Fitchett on Aug 2, 2012 4:41 PM

  • Descendants of many Members flagged with a UDA

    Hi All,
    I'm writing a calc script where I want to Fix on all of the descendants of many parents. The parents have UDAs to identify them, but the children are frequently changing, and will not have UDAs.
    Is there a way to accomplish this?
    I've tried
    FIX(@DESCENDANTS(@UDA("Account","Candidates"))) and some other variations, but @DESCENDANTS only allows a single member argument, not a series of members.

    Markoul, you have posted the same post across multiple forums. This is spamming. No good. Let's just stick with one single thread, if there is any reply. Go here:
    http://www.msi.com.tw/program/e_service/forum/index.php?threadid=29704

  • Need to use @CURRMBR with the @UDA [@UDA(dimName,@NAME(@CURRMBR("dimName"))

    Hi All,
    I have two dimensions that sort of relate to each other
    - Products
    - SKU
    Each product (or service) is a combination of multiple SKU's. One SKU may be used across multiple products as well.
    In order to optimize calculation I want to do something like this:
    FIX ("TR1100" /*Product Code*/ or I can use @Descendants("All Products",0)
    FIX( @UDA("SKU", @NAME(@CURRMBR("PRODUCT")) ) )
    //Do calculation here!
    ENDFIX
    ENDFIX
    I hope to get only the relevant SKU's for each product this optimizing the calculation. However I get the following error:
    Error: 1200315 Error parsing formula for [FIX STATEMENT] (line 15): invalid object type
    If I remove the @NAME function, I get the following error (which is quite obvious this should happen):
    Error: 1200354 Error parsing formula for [FIX STATEMENT] (line 16): expected string [STRING] found [MEMBER] ([@CURRMBR]) in function [@UDA]
    can anyone help me figuring out how to get this to work? If not any alternate strategies to get this to work would be great!
    Shehzad

    It looks like your syntax should work.
    Do you have any "PRODUCT" members that don't resolve to a UDA?
    I wonder if maybe the "Invalid Object Type" error could be because there is a "PRODUCT" member that isn't a UDA.
    Robert

  • Problem in fix statemenet

    HI Experts,
    i have problem in fix statemenet
    in the outline i have a dimension Structre there are many levels on this dimension,
    in the calc script i have to calculte some formula, but in the fix condition i have to fix on Level 0 under Dimension Structure and with UDA XYZ, the memebrs other than level 0 of this Dimesion having the UDA XYZ must not be calculated.
    however i know we can use @REMOVE function. we can fix on @UDA(Structure, XYZ) and remove from this fix, members who aren't level 0 under Dimension Structure.
    how to put the sencond part of the above statement in the below fix command
    FIX( @REMOVE(@UDA("Structure", XYZ) ???)
    Edited by: IMD on Jun 30, 2009 4:18 PM

    I don't believe your code is working the way you think.
    When two FIXes that select the same dimension are nested, in fact they perform a UNION, not an AND. Based on what you've described, you are FIXing on all members that have a UDA of "XYZ", which includes those that are at level 0, and then you are FIXing on all level 0 members that have a UDA of "XYZ".
    If you want to touch all members that have the UDA "XYZ", your first FIX should be sufficient.
    Regards,
    Cameron Lackpour

  • UDA and only for level 0 members condition

    Hallo,
    am i able to FIX only level 0 members with UDA "Expense" ?
    SET AGGMISSG ON ;
    SET UPDATECALC OFF ;
    SET EMPTYMEMBERSETS ON ;
    FIX(
    @UDA("Account", "Expense"),
    {vScenario},
    {vVersion},
    @IDESCENDANTS({vEntity}),
    {vYear},
    @CHILDREN("ICP"),
    @CHILDREN("Alias")
    DATACOPY "PTD" TO "YTD";
    FIX("YTD")
    "Feb"="Jan" + "Feb"->"PTD";
    "Mar"="Feb" + "Mar"->"PTD";
    "Apr"="Mar" + "Apr"->"PTD";
    "May"="Apr" + "May"->"PTD";
    "Jun"="May" + "Jun"->"PTD";
    "Jul"="Jun" + "Jul"->"PTD";
    "Aug"="Jul" + "Aug"->"PTD";
    "Sep"="Aug" + "Sep"->"PTD";
    "Oct"="Sep" + "Oct"->"PTD";
    "Nov"="Oct" + "Nov"->"PTD";
    "Dec"="Nov" + "Dec"->"PTD";
    ENDFIX
    ENDFIX
    thanks
    Edited by: roboh on Jun 6, 2013 1:32 PM

    You can also use the AND in the fix when defining from the same dimension. Just make sure you use parenthesis around the two statements in the AND
    So...
    SET AGGMISSG ON ;
    SET UPDATECALC OFF ;
    SET EMPTYMEMBERSETS ON ;
    FIX((@RELATIVE("Account",0) AND @UDA("Account", "Expense")),{vScenario},{vVersion},@IDESCENDANTS({vEntity}),{vYear},@CHILDREN("ICP"),@CHILDREN("Alias"))
    DATACOPY "PTD" TO "YTD";
    FIX("YTD")
    "Feb"="Jan" + "Feb"->"PTD";
    "Mar"="Feb" + "Mar"->"PTD";
    "Apr"="Mar" + "Apr"->"PTD";
    "May"="Apr" + "May"->"PTD";
    "Jun"="May" + "Jun"->"PTD";
    "Jul"="Jun" + "Jul"->"PTD";
    "Aug"="Jul" + "Aug"->"PTD";
    "Sep"="Aug" + "Sep"->"PTD";
    "Oct"="Sep" + "Oct"->"PTD";
    "Nov"="Oct" + "Nov"->"PTD";
    "Dec"="Nov" + "Dec"->"PTD";
    ENDFIX
    ENDFIX
    Thanks
    Anthony

  • FIX...........ENDFIX ( I Fixed IT)

    Hi All,
    we are using planning applications ,we load data using FDM ,but one(Exchange Rate) value is direct input in the form.
    & using DATACOPY for block creation when we run the script YTD over writes the individual values of Exchange rate in the form .how to avoid this overwrite.
    i am using following script which is overwriting :
    My intension is after DATACOPY YTD TO MTD also i want the same value which they entered in the form.
    please help me on this it,s very urgent plz............
    Regards,
    DATACOPY "YTD" TO "MTD";
              FIX(@UDA ("Account","Flow"))
                   "MTD" = "YTD" - @PRIOR("YTD");
              ENDFIX
              FIX("Apr")
                   DATACOPY "YTD" TO "MTD";
              ENDFIX
    Thanks for all any how by reading help I SOLVED IT.
    Message was edited by:
    Bunny

    Did you remove the whole <body> tag, or just the
    bgcolor attribute?
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.dreamweavermx-templates.com
    - Template Triage!
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    ==================
    "craig16229" <[email protected]> wrote in
    message
    news:es1qt1$5de$[email protected]..
    >I have a centralized DreamWeaver generated javascript for
    dropdown menus
    >(as
    > well as a few other things). I found that removing:
    >
    > <body bgcolor="#ffffff">
    >
    > from just beneath </head> causes the dropdowns to
    stop functioning. No
    > java
    > error - the menus just do not appear on mouseover. I had
    removed it
    > thinking
    > it was un-needed since I have also have a centralized
    .css, and since I
    > don't
    > use pure white anywhere on this template.
    >
    > I put it back and all is fine, but I have not been able
    to learn why this
    > breaks it.
    >
    > Production site is:
    http://www.craigwasselphotoart.com
    >
    > Thanks,
    >
    > Craig --<>.
    >

  • UDA Problem

    We're having trouble with a data "seeding" method. We're seeding data values in accounts differently based on UDAs. There is a particular UDA that is not currently being used in our Essbase outline, but will be used in the future. For that reason, we are leaving it in the calc script. However, this has caused some unexpected results when executing our calc script. Any account that does NOT have a UDA assigned to it is being seeded with this particular line, which is probably just a conicidence.FIX (@UDA (Accounts,PctLYAct))Forecast = Actual->Final->&Prior_Fiscal_Yr * (1 + Forecast->Seeded->BegBalance->"Entity NA");ENDFIXHas anyone else had unpredictable results when using a UDA in a calc script that does NOT exist in an outline. If yes, do you know why this would occur? Thanks!

    I've not had a specific problem with @UDA, but my experience in the ppast has been that if you have a FIX statement which does not return any members, Essbase ignores this "non-restriction" and applies the calc to the whole dimension.You can test this by creating a dummy member and including it in the FIX statement, e.g. FIX(@UDA (Accounts,PctLYAct), Dummy). The calc should then only run for the dummy member. Also you can check the app log to view what fix if any is being applied.HTHMark Rixonwww.analitica.co.uk

  • HT203164 help! i am using itunes 10.6.1.7 and windows vista 64. itunes will no longer burn cds. i have searched online and tried all i saw that could possibly fix it and it is still not working.

    i have tried:
    reloading itunes
    unchecking 'write'
    removing lower filters in regedit
    ensuring i had the correct 'gear' info in the upper filters in regedit
    removing 'gear' from regedit, system32
    reloading updated version of 'gear'
    cleaning my registery
    deleting itunes
    cleaning registry again
    reloading itunes
    cleaning registry again
    i still cannot burn cd. t i can import and play cds in itunes and i can watch dvds. itunes will just not burn to blank cds, and i have tried sever new blank cds, each is not recognized.
    i do not know what else to do, i have searched the internet and whatever i saw doable i tried.
    when i check the cd drive in itunes i had gotten a 4220 error, cnet advised to download a free error fixer, however, this error fixer gave me and enduser message, so that didn't work.
    the diagnostic for the cd burner read that i had to put in a formatted disc with content so i did and there are the results of that were that it read the cd and that the 4220 errir code was encountered last time there was an attempt to burn.
    and 'could not open cd handler 32. there is a problem with the installation of the drive in windows or the drive contains a copyprotected cd.
    the above is not the case as it also popped up for me to import cd to itunes.
    i tried to copy and past the entire contents here but it would not allow me to paste.
    please help!

    I too have only recently encountered this problem. I have been able to burn disks before but it keeps making all these weird sounds. It might be a hardware problem but the fact that everything else that uses a disk works I doubt it.

Maybe you are looking for