Business Rule / Calculation

Hi All,
Need some clarification regarding the essbase calulation.
Below is the scenario.
I have the below hierarchy:
Account XYZ - 500
Acc1 - 250
ACC2 - 150
ACC3 - 100
Say for example that my calc script/business rule runs for 30 mins. Before previous aggregation Account XYZ has a consolidated value of 500.
Is there any chance that the account XYZ shows a different value if I try to retreive the data while my calc or rule is running. I haven't changed the values for Acc1, Acc2 and Acc3.
My calc runs 3 times a day and a users has reported that they have seen the value for XYZ showing different value other than 500 which it ideally should be.
Is there any such possibility thar essbase displays a diffrerent values at the time of calculation or is this the behaviour of Essbase???

As I undestand ACC1-3 are level 0 members. And how about other dimensions? Where do your digits are stored (250, 150, 100). Is it a level 0 block?
Suppose you have ACC1->version1->scenario1->USD->Year1->Entity1->Period1->CustomDim11->..CustomDim1n=250
Which of above members are aggregated?
Also look at the transactional property of your Essbase db (which stores your digits). Is it Commited access or uncommited, what is the value for Synchronization point

Similar Messages

  • HFM 9 Business Rule Calculation missing roll up members

    Hi,
    I could use some help with this one.
    I have a business rule calculation that is simply copying a value from one account to another account with different C4 values.
    HS.Exp "A#CFAdjEBITDA.C4#CFCalc = A#AdjEBITDA" & Tops
    I have done this type of calculation dozens of times and it always works. Now, this time it does not.
    The account AdjEBITDA is a rollup of two accounts that are also rollups. The answer I get is the value of the first base level child in the first account rollup. I took the class on business rules many years ago and I seem to remember that this was a known issue. However, I of course cannot find any notes I made on the problem. I only remember us talking briefly about it and that there was an easy solution. Which of course, I cannot remember either.
    Is any one familiar with this problem or has run into it before?
    Thanks,
    James

    I have never seen HFM not pick up values from a parent member. It really should work. This requires a little debugging on your part. If you have ever used "WriteToFile" which most applications do, then you can write out the expected value to a file to get more insight as to why this is failing. Here is an example:
    nTheNumberIWant = HS.GetCell("A#AdjEBITDA" & Tops & ")"
    Call WriteToFile("This the the number I'm trying to get: " & nTheNumberIWant)
    The output of the WriteToFile subroutine should be:
    This the the number I'm trying to get: 25
    If you get a null, such as
    This the the number I'm trying to get:
    Then you have a problem with the target intersection.
    If you don't already have a WriteToFile subroutine in your rules file, you can see an example in the rules of the Comma sample application that ships with HFM.
    --Chris                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Executing Business Rule / Calculation from Excel - Essbase

    Hi All,
    Currently I am trying to run the calculations / Business rules from essbase after locking and sending data. I am using the below code to run the business rule / calculation from essbase.
    Sub RunBusinessRule()
    On Error Resume Next
    X = EssVCalculate(Empty, "AggFlash", False)
    MsgBox "Business Rule executed successfully"
    End Sub
    The issue is that my code gives me a message that the business rule is executed successfully but the rule keeping running in the background for some time. Actually i need a code which will check the status of the process of calculation and when it actually gets completed I should get a message that it's been done. Please expedite.

    Hi,
    I take it you mean calc script and not business rule as really they are separate.
    The reason you get a message straight away is because you have the synchronous parameter set to false, if you set it to true it should not return until it is comple
    e.g.
    X = EssVCalculate(Empty, "AggFlash", True)
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Business rules in calculation manager

    Hi experts,
    I'm currently working with Hyperion Fusion Edition 11.1.1.2.
    In calculationmanager I created 10 business rules for an application.
    I then deleted all of them in one step (marked all then right click "delete").
    The intenet explorer browser freezed showing "DELETE".
    I then closed the browser and logged back in, imported the new 10 business rules to the application and deployed them.
    It is very wierd that I still have the old 10 business rules which I deleted plus the 10 new business rules.
    The old business rules are not to be found either in system-,deployment-, or list-view.
    Is there workaround to delete the 10 old business rules which I cannot see in calculation manager and still exist in planning?
    Many thanks
    Ed

    There are 2 ways to deploy rules to planning from calc manager.
    Option 1. When you select a bunch of rules and deploy, the old ones are not deleted from planning.
    Option 2. Go to the deployment view, select the rules you want to deploy. Go back to the system view and do a deploy at the application node.
    When you deploy at the application level, planning will erase all the existing ones and replaces it with the new ones.
    -SM

  • Business rules and calculation manager

    Hi ,
    Could anyone pls tell me the difference between the calculation manager and business rules?

    Calculation manager is a web component that is designed to manage business rules from a web interface. It is enabled to build calculations also using a graphic interface, although this mode is more suitable for simple calculations than for complex ones. Calculation manager allows you also to use complex templates that you can customize with prompts in order to adapt them to each rule without being force to change the code. Basically it is an evolution of the essbase business rules macro function. Once a business rule is created it has to be deployed in order to be used with planning applications. The deploy activity copies the rule on the database, both in the calculation manager tables in and the planning tables.
    Business rules are instead essbase artifacts. They aren't available any more from version 11.1.2.2 on.
    In versions older than the 11.1.2.2 you were forced to use calculation manager for epma applications, while essbase business rules were used in classic applications. In terms of calculations there is no difference between the two technologies, they behave exactly in the same way. There is only a small difference in the prompts syntax, {} in calculation manager and [] in essbase business rules.
    Although i find the calculation manager web editor quite slow and imprecise to use, I anyway advice to use it in order to make eventual release upgrades easier.

  • Business rule for Essbase cube calculations in 11.1.1.3?

    Hi,
    Can we use business rules to use @XREF from data transfer from one cube to other cube.Why I went for business rule is, I can put set of business rules in a Sequence and any new user can run this Sequence on demand and even we need prompt also in that.
    So, I want to clarify whether I can use the business rules for Essbase calculations along with calc scripts??
    Appreciate the response.
    Thanks

    Right,
    Actually, Business rules are running essbase cubes in every case.
    Remember planning and BRs are adding extra layers like prompts, forms, security, processes...
    Think Business rules are extended version of calc scripts with some more functionality. They are ultimately running on essbase cubes...
    Regards,
    Ahmet

  • How to add access to business rule in calculation manager?

    Hi all,
    I would like to add access to each business rule in calculation manager. Is it the same method used like in 9.3.1? I can't find any document talking about that.
    Thanks
    Gary

    Hi,
    I thought it goes on the rule security, so say you had two rules in a ruleset, if you give access to both the rules to a user then the user will also see the ruleset.
    If you gave access to one of the rules then the user would not see the ruleset.
    Ok?
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Business Rules apparently locked in Calculation Manager

    We have encountered an issue with the 11.1.1.2 version of Calculation Manager where Business Rules are apparently becoming locked when a user edits a rule and exits improperly (i.e. when Workspace times out). When this happens the rule can be opened by other admins but cannot be edited. The only way we have found to correct this is have the same user log in and close the rule properly. However, we have one rule locked by a user who is no longer active and with the company. Does anyone know of a way to unlock the rules in Calc Manager? Our Calc Manager is being used with EPMA applications.
    Thank you.

    I remember coming across this problem about 1 year ago and like you, the recycle the server wasn't an option / didn't work
    I don't remember the exact steps but try this
    Export the calc to an xml file. Delete the calc. Re-import the calc. If I remember correctly the master admin can delete the calc even if it's checked out. If that doesn't work try just exporting and importing ontop of the calc. One of those worked if I remember correctly but it was almost 1 year ago that we did this (so my memory is getting a bit hazy).
    This was also in version 11.1.1.3 not 11.1.2 so there is a chance that 11.1.2 it won't work.

  • Migrate Business Rules to Calculation Manager

    Hi Friends,
    we have Hyperion Planning v11.1.1.3 Application (Classic Application). I want to migrate from Business Rules to Calculation Manager.
    Please let me know the procesure.
    Thanks & Regards
    Sai.

    In EAS go to export, select the rules, make sure "for calc mgr" is ticked.
    Import the rules into calc manager.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Error Validating Business Rule in Calculation Manager (@_AT) ?

    I have migrated an 11.1.1.3 business rule and two macros (templates) into Calculation Manager 11.1.2.2. When I validate the script I get the following error. Has anybody seen this before or have any guidance? The script syntax checks ok.
    "An error occurred in: Rule:FCO_3YrBud_DGAlloc Error:Error parsing formula for [FIX STATEMENT] (line 24): Expected [(] found [@_AT] after function name Rule FCO_3YrBud_DGAlloc "
    Line 24 is the first FIX statement in the script show below:
    SET UPDATECALC OFF; SET AGGMISSG OFF;
    %Template(name:="FCOm_TargetSection",application:="FCO",plantype:="FCO",dtps:=("parm1":=([["Three Year Budget"]]),"parm2":=([["DGAllocation"]]),"parm3":=([[{FCOrtpYears}]]),"parm4":=([[Mar]])))
    %Template(name:="FCOm_TargetAgg",application:="FCO",plantype:="FCO",dtps:=("parm1":=([["Three Year Budget"]]),"parm2":=([["DGAllocation"]]),"parm3":=([[{FCOrtpYears}]]),"parm4":=([[Mar]])))
    First template:
    SET UPDATECALC OFF; SET AGGMISSG OFF;
    FCOm_TargetSection
    parm1 = scenario
    parm2 = version
    parm3 = years
    parm4 = periods
    The purpose of this macro is to translate Target input to GBP and copy to Curr NA and aggreggated. Step1: Copy inputs to Total Section to I/P Total Section and No Project Step1: Copy inputs to Converted Currency - no need to translate as all inputs are in GBP Step2: Copy Input GBP values to Curr NA
    FIX(([["Three Year Budget"]]),([["DGAllocation"]]),([["FY15"]]),([[Mar]]),@IDESCENDANTS("BH - T"), "Curr NA", "Baseline","Entered Currency","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Total Section" TO "Input_Total Section";
    DATACOPY "Total Section" TO "No Project";
    ENDFIX
    FIX(([["Three Year Budget"]]),([["DGAllocation"]]),([["FY15"]]),([[Mar]]),@IDESCENDANTS("BH - T"), "Curr NA","Total Section", "Input_Total Section", "No Project","Baseline","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Entered Currency" TO "Converted Currency (GBP)";
    ENDFIX
    FIX(([["Three Year Budget"]]),([["DGAllocation"]]),([["FY15"]]),([[Mar]]),@IDESCENDANTS("BH - T"), "Total Section","Input_Total Section","No Project", "Baseline", "Entered Currency","Converted Currency (GBP)","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Curr NA" TO "Input GBP";
    ENDFIX
    Second template:
    FCOm_TargetAgg
    parm1 = scenario
    parm2 = version
    parm3 = years
    parm4 = periods
    The purpose of this macro is to  aggreggate Target data Step2: Aggregate data
    FIX(([["Three Year Budget"]]),([["DGAllocation"]]),([["FY15"]]),([[Mar]]),"Baseline","Entered Currency","Converted Currency (GBP)")
    CALC DIM("Account","BudgetHolder","Input Currency","SectionProjects");
    ENDFIX

    Actually
    I have just been re thinking about your post. My comments above may not be correct for your situation. The Syntax above is correct if you are talking about the code "within" the template itself (So if you open the template and look at the code). But if the code you posted in your messages was from the script window of the rule (When in script mode) then your problem is something different potentially.
    So the first thing is to make sure that in the template itself (template open) the DTPs are defined in the global range or member range as [Parm1],[Parm2] etc (Or fix, depending on how the template is shown) as I said in my first response above, the template only defines the DTP, not the members and should be enclosed in square brackets, like [Parm1}. That will make sure the DTP as defined in your template correctly. Then we need to look at how you are defining those DTPs in the rule itself. Normally this is a lot easier if your rule is in graphical view, as you just click on the template and your can enter the values. As you have your rule in Script mode you need to be very careful in how you define the DTP values. Each DTP 'type' has different syntax in script mode.
    On looking at your script again I can see another problem potentially. When defining the values in the DTP's, the value needs enclosing with double square brackets, like so  [["Three Year Budget"]]. In your script you also have parenthesis. Which isn't always correct. There are times having parenthesis and double brackets is correct, but that is only when your DTP is type "Members", and by default I think old business rule macros will be translated into templates with the DTP types of "Script"
    So if you also amend your business section where the templates are defined to as below; (as you can see, no parenthesis around the DTP values).
    SET UPDATECALC OFF; SET AGGMISSG OFF;
    %Template(name:="FCOm_TargetSection",application:="FCO",plantype:="FCO",dtps:=("parm1":=[["Three Year Budget"]],"parm2":=[["DGAllocation"]],"parm3":=[[{FCOrtpYears}]],"parm4":=[[Mar]]))
    %Template(name:="FCOm_TargetAgg",application:="FCO",plantype:="FCO",dtps:=("parm1":=[["Three Year Budget"]],"parm2":=[["DGAllocation"]],"parm3":=[[{FCOrtpYears}]],"parm4":=[[Mar]]))
    The end game should be that when you open your rule and view in script mode and then select script tab down the bottom your templates should look as below, as you will see, all that should be shown in the script are the values substituted from the template definition, key point is that there are no brackets or Parenthesis. The script should show "pure" script. ( I have highlighted and underlined how those 4 DTPs should translate in the script view)
    First template:
    SET UPDATECALC OFF; SET AGGMISSG OFF;
    FCOm_TargetSection
    parm1 = scenario
    parm2 = version
    parm3 = years
    parm4 = periods
    The purpose of this macro is to translate Target input to GBP and copy to Curr NA and aggregated. Step1: Copy inputs to Total Section to I/P Total Section and No Project Step1: Copy inputs to Converted Currency - no need to translate as all inputs are in GBP Step2: Copy Input GBP values to Curr NA
    FIX("Three Year Budget","DGAlocation",FY15,Mar,@IDESCENDANTS("BH - T"), "Curr NA", "Baseline","Entered Currency","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Total Section" TO "Input_Total Section";
    DATACOPY "Total Section" TO "No Project";
    ENDFIX
    FIX("Three Year Budget","DGAlocation",FY15,Mar,@IDESCENDANTS("BH - T"), "Curr NA","Total Section", "Input_Total Section", "No Project","Baseline","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Entered Currency" TO "Converted Currency (GBP)";
    ENDFIX
    FIX("Three Year Budget","DGAlocation",FY15,Mar,@IDESCENDANTS("BH - T"), "Total Section","Input_Total Section","No Project", "Baseline", "Entered Currency","Converted Currency (GBP)","A - 6111","A - 6112","A - 6113","A - 65","A - 66","A - 620905")
    DATACOPY "Curr NA" TO "Input GBP";
    ENDFIX
    Thanks
    Anthony

  • Creating and using a calculated field in business rule from the currency conversion of another field.

    Hello,
    I'm creating a calculated field with a set currency for a business rule. I'm planning to use it as a deficiency criteria. I want the values to come from the currency conversion of another field. Can someone provide me the step by step procedure on how to do it?
    Some documents would be great.
    I've been trying to do it on my own but I've gotten lost.
    Thank you.

    Thank you for all your help above.
    Just to confirm your advice, am I right with the following conclusions? :
    1. The script (function) to fill the text field with the modification date of a different PDF file needs to be stored in a folder level .js file.
    2. The document containing the text field needs to call the .js function either within the document script or within the custom script property of the text field itself.
    Further to that can you just advise on the syntax for accessing the modification date of the other document.
    Do I need to assign a variable to the address of the file to be used, and then use this variable in the text form filling script (as below) or can I use a direct file reference at the .modDate command.
    var LastSync = "C:\sync\bin\lastsync.pdf";
    var strMsg = util.printd("h:MM tt",LastSync.modDate) + " on ";
    strMsg += util.printd("dddd, d mmmm, yyyy",LastSync.modDate);
    this.getField("LastSyncDate").value = strMsg;
    If the syntax is totally different to the above I would be very grateful for some guidance in the right direction.
    I much appreciate your time to help me ... I'm almost there.
    Kind Regards,
    Nifty

  • When we use calculation script and when we use business rule

    when we use calculation script and when we use business rule can anyone please tell me

    Re the OP's question, here is an excellent introduction to Calculation Manager and business rules. It was the first hit when I googled "calculation manager hyperion".
    http://ranzal.wordpress.com/2010/06/11/oracle-hyperion-calc-manager-%E2%80%93-part-1/
    You can also go to odtug.com -- the Tech Resources section has a series of presentations on Calculation Manager, from beginner to intermediate.
    The added benefit with business rules are that you can use variables and runtime prompts. You can also link planning with business rules and pass information from a web form into a business rules.^^^Only with Planning. There are no runtime prompts with Essbase in 11.1.2.2 but I hear it is coming back in 11.1.2.3
    We can use Business Rule for all applications and it is GUI.^^^Doesn't have to be GUI-based. You can (depending on version) flip back and forth between GUI and script. I have not tried writing (nor can I actually think why you would want to do this) a Calc Mgr rule for multiple apps. Maybe you are thinking of a script object that can be called multiple times?
    To check whether a calc script is executed or not you have to use the Essbase application database log file (Plan1.LOG)^^^As business rules are, sooner or later, translated to BSO (and hey, ASO too and HFM and Fusion and HPCM and they can differ, a lot, so this is not always true) calc script language, you can always check in the application log to see what is run if Planning or BSO Essbase.
    Regards,
    Cameron Lackpour

  • 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

  • BPC 10.0 NW - How do I make Business Rules run one Period at a time

    I was wondering if anyone has a way to make business rules run one period at a time before moving on to the next to the next time period (i.e. January 2014 calc prior to moving on to February 2014).  In past SQL this could be achieved with a piece of script *CALC_EACH_PERIOD.  Is there anything like this that can be applied in the NW platform for Business Rules?  I have some logic that I want to run through a package on multiple periods at once.  Part of this logic contains a Business Rule that uses a value from the preceding period.  the Business rule appears to be calculating all time periods selected in the package at once so it is missing the piece that is supposed to come from the prior month unless the package is run one period at a time.  I need the logic to run sequentially by time period (oldest first) when more than one time period is selected.
    thanks,
    Keith

    Hi Vadim,
    Script for the business rule is below, it runs along with the FX_Trans rule in the same package  ( I have also attached a screen shot of the actual Business rule its self)
    *RUN_PROGRAM CALC_ACCOUNT CATEGORY = %CATEGORY_SET% ENTITY = %ENTITY_SET% CURRENCY = USD //GROUPS = %GROUPS_SET% TID_RA = %TIME_SET% //OTHER = [AUDITTRAIL=%AUDITTRAIL_SET%] CALC = CALC_HIST_USD *ENDRUN_PROGRAM
    Thanks, Keith Carlson

  • 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

Maybe you are looking for