Using a local Array in a Business Rule

Newbie question here...
I am writing a business rule that applies a standard rate to a lot of different lines in a business rule. This rate only varies by year, so from a logical perspective I think of it as a 1 dimensional variable. However the rate is actually stored in my normal Essbase cube (8-dimensions) something like the following:
Dimension Dimension Member
Account: Rate
Dim2: No Dim2 Value (A dimension member called "No dim2 Value")
Dim3: No Dim 3 Value
Dim4: No Dim4 Value
Dim5: No Dim5 Value
Dim6: No Dim6 Value
Dim7: No Dim7 Value
Year: [varies by year]
So right now my formula to calculate things looks something like the following:
"Target Account 1" = "Driver Account 1" * Rate ->
"No Dim2 Value" ->
"No Dim3 Value" ->
"No Dim3 Value" ->
"No Dim5 Value" ->
"No Dim6 Value" ->
"No Dim7 Value"
But I have to do this for several "Target" and "Driver" Accounts in the rule, which means an ugly looking rule. What I would like to do is create a local array at the beginning of my business rule and populate it with the rate:
ARRAY _rate[Year]
and then set the value of the array equal to
Rate -> "No Dim2 Value" -> "No Dim3 Value" -> "No Dim3 Value" ->
"No Dim5 Value" -> "No Dim6 Value" -> "No Dim7 Value"
This will allow me to simplify my formula down to
"Target Account 1" = "Driver Account 1" * _rate
My first question is "can I do this?" I've been able to create an array and use it in the formula, but I can't figure out how to populate the values in the array from my main Essbase cube.
The second question is "does it make sense to do this?" In addition to making the code easier to read, my guess is that populating the array once and just using it within the scope of the rule would be a bit more efficient than referencing that big cross dim expression, but I really don't know.
Any advice anyone has would be appreciated.
Thanks
-Glenn

I am familiar with what you are trying to accomplish.
Having Essbase store a fixed rate over time to be used in calculations is possible. However formulas start to look complex depending on how many dimensions you have and what the desired outcome is.
There are alternate techniques to the one you mentioned.
You can create a new database for rates only and make it with fewer dimensions. Then use the @XREF function to retrieve it in your formulas.
If the rate doesn't change very often you can put the Rate inside of the formula as is.
For example Y2006_Rate = 5%.
Brian Chow

Similar Messages

  • Using third party jars with Oracle Business Rules

    Hi
    I am working on Oracle AS 10g release 2.
    We are using Oracle Business Rules in integration with Oracle BPEL.
    While using third party jars however, Oracle Business Rules end is facing errors.
    Error during unmarshallingProvider com.sun.xml.bind.ContextFactory_1_0_1 not found
    oracle.classloader.util.AnnotatedClassNotFoundException:
    Missing class: com.sun.xml.bind.ContextFactory_1_0_1
    Dependent class: javax.xml.bind.ContextFinder
    Loader: oracle.xml:10.1.0_2
    Code-Source: /D:/oracleasr3/lib/xml.jar
    Configuration: <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in D:\oracleasr3\j2ee\home\oc4j.jar
    Can anybody help in figuring out where Jaxb jars(3rd party jars) are to be kept so that OAS access it?
    We tried using the applib folder to load the jars but we are getting class loading errors.
    When new instances are created, class loading is not happening.
    Pls help.
    Thanks
    Kavya

    Are you using Application Server Release 3 or Release 2? There are different versions listed in your mail.
    I think you probably want to add this as a shared library via EM and then import the shared library to your application with the application's xml config files.

  • Using Y-T-D values in Business Rules

    Hi All,
    I am using Hyperion Planning 11.1.1.1.0.
    I have enabled Y-T-D dynamic time series in the application.
    I need to calculate YTD variance% , the formula to be used is :
    (Y-T-D(Oct)Budget - Y-T-D(Oct) Actual) / Y-T-D(Oct)Budget * 100.
    I have a business rule(created in EAS) that does the other variance % calculations which are pretty simple like Budget-Actual/Budget*100.
    The formuls for the normal variance Percentage works but i get an error when writing a formula for :
    "Variance%(YTDActual&YTDBudget)"
    ("Variance%(YTDActual&YTDBudget)"="Y-T-D(&CurrentMonth)"->Budget - "Y-T-D(&CurrentMonth)"->Actual / "Y-T-D(&CurrentMonth)"->Budget *100;)
    The error that comes up is as follows:
    Detail:Cannot calculate. Analytic Server Error(1200497): Error compiling formula for [Variance%(YTDActual&YTDBudget)] (line 2): unknown member name ["Y-T-D(&CurrentMonth)"] in function [operator @X]
    Can somebody please advice as how to use Y-T-D values in the formulas?
    Kind Regards.
    Mirka

    Here are a couple of tips that may help:
    1) You cannot directly reference dynamic-time-series members in a business rule or a member formula. These are "virtual" members. This is a common misconception.
    2) Even if you could reference these members in a formula, you couldn't store a value in them anyway, as they are dynamic.
    3) It usually doesn't make a lot of sense to calculate variances like these in a business rule. I would recommend making them dynamic, two-pass member formulas (not business rules) in your Scenario dimension. They don't need to be "Two pass" in the typical sense (eg. recalculating a ratio at the quarters), but they need to fire last, so set them as two pass. (otherwise you will end up with order of calculation issues where other calculations fire after the variance and you get incorrect results).
    In looking at your requirement, you don't really need a variance that calls out dynamic time series members. Simply create a variance scenario with a formula like @VARPER("Budget", "Actual");. If you have "Y-T-D(Oct)" selected as your time period in your form or spreadsheet, and "Bud vs Act %" (this is your new variance scenario) selected, it will calculate the YTD variance for October, or whatever time period you have selected.
    Just to recap:
    1) Create a new scenario called "Bud vs Act %". Make it dynamic and two-pass. Give it a formula of @VARPER("Budget", "Actual");
    2) Scrap your business rule. Add other variance scenarios as needed.
    3) Add your YTD member and your variance scenario to a form, and test.
    Hope this helps,
    - Jake

  • Using StartsWith for String Comparision in Business rules

    hi,
    I need to compare whether a particular string starts with some pre-defined prefixes. These are bound to change from time to time and hence we wanted to use the business rule engine for this. We declared prefixes using "list of values" vocab and
    defined the set. Now, I hoped to use the String.StartsWith() method but couldn't understand if it can be used.
    As of now, we are creating a method and that will be called with 2 parameters. One the string and other is one of the list of values which we want the string to start with. Is there any better way to do this?
    Praveen Behara
    MCST : BizTalk Server 2006 R2, 2010

    Hi Murugesan,
    I need to match a particular series of numbers... say 12xxx,345xxx,567xxx. I am creating a
    Series as a list and the valid values would be 12, 345, 567. I intend to keep them as prefixes i.e. they are not regular expressions. So, they won't be 12.*, 345.*, 567.*. The idea is to keep the vocab close to requirement
    and away from implementation (typically, for a business user). Now, if I want this setup, how will the implementation with
    Match look like?
    Technically, your above solution would work.. but my way of implementation / thought process is for a different purpose.
    Praveen Behara
    MCST : BizTalk Server 2006 R2, 2010

  • Use of JSR-94 in oracle business rule

    I am developing an application using oracle business rules .
    I want to create a JSR-94 Rule Execution Set from Rule Sets in a Dictionary
    and want to run the application through created rule execution set.
    I have taken reference form OracleBusinessRulesUsersGuide.pdf but unable to
    run the installed_dir\rules\demo\car demo through the rule execution set.
    U can take the reference of car demo
    with regards
    saleem khan

    Hi,
    Thnaks for your reply but I've already tried with that and as I've mentioned above, it would return you an integer representing the day of the week;not the day.
    Thanks
    Edited by: user11930797 on 20 Sep, 2011 8:22 PM

  • Use of decision table in Oracle Business Rule

    hello,
    I am using Oracle Business Rule beta version to develop a rule base application.
    I want to know that how i can make use of table to make decision on the basis of table data .
    thanx
    saleem

    hello,
    I am using Oracle Business Rule beta version to develop a rule base application.
    I want to know that how i can make use of table to make decision on the basis of table data .
    thanx
    saleem

  • Syntax for using AND with a variable in Business Rule Source

    I've never fully gotten my head around the AND/OR syntax of calc scripts. What I'd like to do is as follows in some basic pseudo code:
    FIX( ("A97" AND [Selected_Entity]) OR ("B76" AND [Selected_Entity]) OR ("C63" AND [Selected_Entity]) ).
    I want my webform's business rule to execute on the selected Entity in the form (eg. A97) ONLY if that entity is part of a restricted list of members (in this case, 3 entities out of 200).
    Thanks for any advice!

    Hi,
    I am not sure if I have totally understood what you are trying to achieve so sorry if I have misread it.
    But what you could do is set up a variable in the Bus Rule, lets call EntVar.
    It is set up as a local variable of type member and dimension Entity with a run time prompt "Enter Entity"
    Now in your script it could look something like this....
    FIX(&CurrentYr, "Working".......)
    "AccMember"(
    IF(@ISMBR(&#91;EntVar]) AND (&#91;EntVar]=="A97" OR &#91;EntVar]=="B76" OR &#91;EntVar]=="C63") )
    AccMember=.......;
    ENDIF
    ENDFIX
    Once you have tested the business rule, you can get your form to pass through the entity into the variable.
    Is this what you are trying to do?
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Use of other dimension filter in business rule

    Hi,
    I have a requirement to create two eliminations and adjustment business rules, one of which should only run for a specific category and the other should run for all other categories. I thought I could use the other dimension filter for this and on the first rule CATEGORY=ACTUAL is accepted by the system. However, on the second rule I entered CATEGORY<>ACTUAL and when I save the rule I get an error saying that CATEGORY<>ACTUAL is not a valid logical expression.
    As we have a number of categories I really do not want to create a rule for each one, so does anyone know a way to create a rule for all but one of my categories?
    Thanks,
    Arnold

    Hi Vadim,
    we currently have around 20 categories (plus ACTUAL) and we get two new every year for multi year plan/forecast. If only = works I would have to create one very long string for the second rule and add to it very year.
    I will try it though and if you are correct I might have to open a note with SAP.
    Thanks,
    Arnold

  • Is it possible to use "not" logical operator in a Business Rule Condition?

    This seems like a very simple request to me, but I cannot see any other questions/answers about it.
    Can I add a "not" to my Conditions in a Business Rule?
    My scenario is that I have a core Entity with a Type.  The Type is a domain attribute with a Code and Name.  The Code of the core Entity should in the form 'AA-9999', where 'AA' is the Code from Type.
    The idea is that I have a business rule with the condition "not
    Code starts with DBA.Type.Code" and the Action would be "Code is not valid".
    Is this possible?  Is there a better way of implementing this?
    Thanks,
    Michael

    Yeah! This is the board in question! But it has lots of versions, like K7T Pro, K7T Pro2 (my one!), K7T Turbo, K7T Turbo Limited Edition and K7T Turbo2, all of then are WS-6330 Lite...   They phisically diferent, but the BIOS seens to be the same... I want to know is this feature in the newer version is going to work or not on my board (MS 6330 Lite K7T Pro2 Ver:1) ....
    Doesn´t matter what board you choose (PRO, PRO2, Turbo, Turbo2) the MSI page shows all the same BIOS to Download... But I think that this feature is only applicable for K7T Turbo2, but will make no difference in my! At least that´s what I think...
    But you´re right! The board that I have is the one on the link you said!
    Thanks!      

  • How to use array variable in Business Rule

    Hi,
    I have read a lot about Array variable. But everywhere declaration of array variable in described. I can declare that. It works fine. But i can't implement that array variable.
    Can any one please provide me an example of implementation of array variable?
    Regards,
    Rubi
    Edited by: Rubi Banerjee on Mar 30, 2012 3:35 AM

    forget about all varible in essbase CSC
    it's bad practics.^^^Is it?
    Essbase cube are self big array )^^^That's what makes ARRAY so cool -- you can set up an array that encompasses a dimension.
    Example straight from a HBR:
    ARRAY SomeArray["Entity"] ;
    Regards,
    Cameron Lackpour

  • Using variables in Calc scripts and Business Rules

    I am sure there have been previous discussions about this, but can somebody let me know the benefits of using variables in Calc scripts and BRs?
    Thanks,
    A

    I have never used calc variables and after reading a study guide, which talked about them, I couldn't really understand the benefits.^^^I use variables all the time to make abstract difficult formulas. Below is an example.
    /*     Declare variables     */
    VAR varSalaryCosts ;
    VAR varProdOHLabXXXX ;
    VAR varXXXX ;
    A whole bunch of code here along with very limited FIX statement and then...
    "Salaried Labor"
         varSalaryCosts = "Salary Costs"->"No Department"->"No Category"->"Salaried" -
                             "Wage Bonus"->"No Department"->"No Category"->"Salaried" -
                             "YYYY Retention Bonus 40%"->"No Department"->"No Category"->"Salaried" -
                             "YYYY 60% Ret Bonus Accrual"->"No Department"->"No Category"->"Salaried" ;
         varProdOHLabXXXX = "Number of Employees"->"ZZZZDepartments"->"Codes"->"Salaried" +
                             "Number of Employees"->"Blah Departments"->"Codes"->"Salaried" +
                             "Number of Employees"->"Humph Departments"->"Codes"->"Salaried" +
                             "Number of Employees"->"TTTT"->"Codes"->"Salaried" ;
         "Salaried Labor" = varSalaryCosts * ("Number of Employees"->"Salaried" / varProdOHLabXXXX) ;
    )The last formula is how the formula was described to me by the business owner. I find it to be much easier to read than something like:
    "Salaried Labor" = ("Salary Costs"->"No Department"->"No Category"->"Salaried" -
                             "Wage Bonus"->"No Department"->"No Category"->"Salaried" -
                             "YYYY Retention Bonus 40%"->"No Department"->"No Category"->"Salaried" -
                             "YYYY 60% Ret Bonus Accrual"->"No Department"->"No Category"->"Salaried") *
                             ("Number of Employees"->"Salaried" /
                             ("Number of Employees"->"ZZZZDepartments"->"Codes"->"Salaried" +           
                             "Number of Employees"->"Blah Departments"->"Codes"->"Salaried" +
                             "Number of Employees"->"Humph Departments"->"Codes"->"Salaried" +     
                             "Number of Employees"->"TTTT"->"Codes"->"Salaried")) ;I have used ARRAY in a really-cool-but-alas-not-invented-by-me calc script to do currency conversion in Planning better than Planning does currency conversion. (How's that for a run-on sentence?) It is one of the six blog posts I am working on and I will finish it soon, I hope. I am sort of in thrash mode right now. It does have its uses and I'll try to remember to update this thread when I'm done.
    Regards,
    Cameron Lackpour

  • Get cell value in Planning Data form and using it in a business rule

    Hi Everybody,
    if i set the data type of an Account Member as text, is there a way to get the value inserted by the user in a dataform, turning it as dimensional member and using it in a business rule?
    So, if the user insert the value "USA" in a cell, can i use any functions to tell essbase that "USA" is a dimensional member and then using it in a business rule, for example in a cross-dimension like Period1->FY12->USA?
    I tried to use the function @Member and it doesn't work, but i'm wondering if there is a way that can let me get the value inserted and use it just like a dimensional member. What are the ways that can let user input value that can be used in a business rule? I think one is by using SmartList, is there any other ways? Maybe using variables?? As an alternative i tried to use Prompt Variable but there are too many members on which the rule must run.
    Please help me, i wanna know if i can or not let the user input the member on which the rule must run...
    Thank all guys
    Bye
    Maurizio

    Thanks EW for your answer,
    YesI could use SmartList even if i think it's very tough to handle. My experience on using SmartList in caclc script is not so good. I try to enter in details of my requirement:
    I have 500 account members.
    For each one, I have to calculate the monthly budget by sharing the amount among the months. The user wants to calculate it on the basis of the actual flow(over the months) of an unspecified account of the prior year. The unspecified account must be inserted in a data form.
    So, i could use a Smart List but it colud be of 500 elements and then i should make a rule with as many IF as how many are the accounts. Or im wrong? The only way to use smart list dynamically in a business rule is by referring its values in a IF condition. Or i'm wrong.
    I tried to use execution variable ma it seems don't work. In this case the user must pay attention to write the account correctly, otherwise as you say the rule doesn't work.
    The value in PD0A020 is "PD0A000" (that is a dimensional member). The value in PD0A000 is "hello". In PD0A040 the rule returns "PD0A000" and not "hello" as i would. The function @Member appears to be not able to catch the dimensional member by the value in PD0A000.
    {Example}="test"->"Input"->"Scenario_test"->"FY12"->"PD0A020";
    Fix("test1","Input","Scenario_test","FY12")
    "PD0A040"=@Member({Example});
    endfix
    So, my doubt is: is it possible for Essbase/Planning to use the value inserted in a data form and to turn it in a dimensional member? What are the practicable ways to let the user input/choose the member on which makes the rule run?
    Thank you Ew, thank you guys
    Maurizio

  • Unable to use DIMLIST property in business rules

    Hi Team,
    We have updated Account dimension with TYPELIM(10), DIMLIST(20) properties and in AUTOMATIC ADJUSTMENT DETAILS in the SOURCE ACCT when we update it with valid account ID or TYPELIM property value, it validates sucessfully.But, when we update it with Valid DIMLIST property value, it throws an error <Property Value>  value does not exists in ID,TYPELIM of Account dimension. We are able to see the DIMLIST property values in the list of available options.
    We are unable to use the DIMLIST property in other business rules and for FLOW dimension also.
    Server Details : BPC MS 7.0 SP3 patch level 2
    Appreciate if you can give your inputs on this.Please let me know if I need to provide any other information.
    Kranthi

    Hi Kranthi,
    Based on my observation the source account column specification in the Automatic Adjustment Details business rule allows only to specify a member of either account id or TYPELIM property from account dimension. Other properties not available for the selection.
    Hope this helps.
    Regards,
    Badrish

  • Members on rows, can they be passed to run-time prompt in a business rule?

    Hi!
    I have a input form which has a business rule with properties "Run on Save" and "Use members on Form".
    The business rule has run-time prompts (local variables) as follows (showing only the fix part of br...)
    FIX ([V_Year],[V_Version],[V_Scenario],@LEVMBRS ("Offering", 0),[V_Entity],
    [V_ICP], [V_Account])
    calculation...
    endfix
    Now my accounts are on rows and I would like pass those account members to the [V_Account] variable through run time prompt. The [V_Account] ís a local variable with Type "Members" in Account dimension. I have also selected 0-level accounts as limits. Other dimension members from page/pov seem be passed successfully to run-time-prompts.
    The run-time-prompt does not seem to be able to catch those account members on rows? Is it at all possible to pass members on dataform rows to run time prompts?
    kind regards,
    user637777

    Hi!
    Thanks John!
    I just have live with that and find another way to restrict the calculation regarding those accounts.
    kind regards,
    user637777

  • Sharing information between Hyperion Business Rules

    I am trying to share information between two Hyperion Business rules in EAS console.
    Suppose for example , I calculated a value and stored in local variable in one Business Rule.
    I would like to have this information in another business rule.
    Any idea about the possiblities.?
    I tried to use Global Variables in EAS but the Global variables are fixed and cannot be changed.
    Thanks ,
    Rajan

    Can you make a HBR local variable the target of a value? Doesn't that local variable have to resolve to a member in an Essbase database sooner or later if it's going to receive a data value from a formula?
    Or did you create a local variable as Real and then used that as the target? Maybe that would do it? (Obviously I've never done this.)
    Could you create a temporary place in the database to stick it and then delete it?
    Something like:
    1) Local variable = some kind of formula/calc
    2) No Account->No Product->No Scenario->whatever = Local Variable value. The point is an unused member that will let you set a value without overwriting permanent numbers. That shouldn't be too hard to find in a Planning app.
    3) In HBR #2, go after that member combination and number from #2, stick it into a local variable, and set that location in #2 to #Missing.
    Kind of painful, but it shouldn't really be that tough. You will need to make sure you create the block in #2.
    Regards,
    Cameron Lackpour

Maybe you are looking for

  • How to find out how many hours an iMac has been running!

    Is there a way to find out how many hours an iMac has been running? I am thinking of buying a second hand iMac 20' or 21.5' as for space reasons, the actual 27' versions are too big. And of course, all adverts state "hardly never used"!!

  • Reg. JSF Spring Integration issue.

    Hi All, I am using JSF for the front end and using the Spring Core, DAO and AOP for the BO and DAO layers. When i try to inject the Objects using the DI to the JSF, i am getting the following error and the objects are not getting set from the Spring.

  • 3rd Party Application Vulnerability Patching-Automating and Best Practices-HELP!

    Using Kaspersky Security Center Version 10.1.249I have been tasked to come up with a process to manage our Microsoft workstations and Servers to patch 3rd party Vulnerabilities (WSUS is managing the Microsoft side).New to the KSC interface since i ha

  • OT: What Does a Client Own When a Site's Developed

    Hi All -- I have a new client who wants me to do maintenance and updates to an existing site. She also wants to move her site to a new host. Sounds simple enough. However, the company that originally built the site and currently maintains and hosts i

  • Step and repeat multi page pdf

    so im still failry new to indesign. im running cs5.5 and im trying to imposition a multi page pdf it is a 110 page pdf and what i would like to do is place it( for example) 8up step and repeat what i would like is 110 sra3 sheets with each sheet havi