Business Rules script

All,
I have the below script which gets generated in the source tab when I create a Calc rule which aggregates a portion of the database:
To give more information: @IDESCENDANTS("Product Contribution" selection and the FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal"))) are selections of Dense dimensions and the others are selections from the Sparse Dimensions. The below script generates 4 sets of Fix statements and it is only in the final set of the fix statements that it does the Calc Dim. Do we still need the above 3 set of Fix statements and also is there any way that usage of IF statements will improve the performance of this rule?
SET UPDATECALC ON;
SET UPTOLOCAL OFF;
SET AGGMISSG ON;
SET FRMLBOTTOMUP OFF;
SET CACHE HIGH;
FIX("FY08")
FIX("Actual")
FIX("Final Submission","UK Adjustments")
FIX(@IDESCENDANTS("Source Countries"))
FIX(@IDESCENDANTS("UK Pharma CC"))
FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
@IDESCENDANTS("Product Contribution");
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
FIX("FY08")
FIX("Actual")
FIX("Final Submission","UK Adjustments")
FIX(@IDESCENDANTS("UK Pharma CC"))
FIX(@IDESCENDANTS("Product Contribution"))
FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
@IDESCENDANTS("Source Countries");
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
FIX("FY08")
FIX("Actual")
FIX("Final Submission","UK Adjustments")
FIX(@IDESCENDANTS("Source Countries"))
FIX(@IDESCENDANTS("Product Contribution"))
FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
@IDESCENDANTS("UK Pharma CC");
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
FIX("FY08")
FIX("Actual")
FIX("Final Submission","UK Adjustments")
FIX(@IDESCENDANTS("Source Countries"))
FIX(@IDESCENDANTS("UK Pharma CC"))
FIX(@IDESCENDANTS("Product Contribution"))
FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
CALC DIM("Product");
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
ENDFIX
Thanks
Vikash

Vikash,
Graphical business rules are notorious for generating inefficient calc scripts. But without knowing more about your application this is a tough questions to answer. If you are simply trying to rack up your sparse dimensions, then I would write the business rule to only do that.
It looks like your dense dimensions are Product Contribution (is this accounts or measures perhaps?) and Time. Your first fix executes the rollups or formulas on @IDESCENDANTS("Product Contribution");. If this is a dense dimension, can you make these rollups and calcs dynamic, such that you do not need to calculate them in a business rule at all?
Are there any formulas on the remaining sparse dimensions? (Source Countries, UK Pharma CC and Product) If not, I would simply do an AGG on each of these dimensions, eliminating the first group of fixes. Only use CALC DIM if you need to execute member formulas, otherwise use AGG.
Again, I'm making a lot of assumptions with little information about your model, however you should be able to speed this up. For what it's worth, most people avoid graphical business rules.
I hope this helps,
- Jake

Similar Messages

  • Initialized Planning application,but cannot see business rules(scripts).

    Hi All,
    I am new to Hyperion and would really appreciate your help. I created a blank planning (11.1.1.3) classic application and initialized Capex planning (Edit->initialize capex), and then created and refreshed database so that it appears in Essbase too. I can see the application in essbase and in Planning, I see the data forms and dimensions,member formula...etc. When I open a data form it shows me the business rules at the left bottom and I can execute them and select run time prompts. But when I go to calculation manager and select the same application, to see the the actual scripts how it is designed( basically wants to learn how the scripts are desined, calculation functions and all) under Rules and scripts, I do not see the scripts anywhere. I have tried this 4-5 times by creating fresh new application( I also tried workforce planning & same problem) with one plan type,more than 1 plan type but its now working. Can someone please help me from your experience what could I be missing and why its now showing there.
    Thanks for your help in advance.
    Edited by: 974509 on Dec 3, 2012 6:14 PM

    Hi,
    While creating the application what "Calculation Module" had you selected.
    If you want to use calculation manager you need to have the calculation module as Calculation Manager.
    Planning Calculation Manager Administrator enables you to create business rules using Hyperion Calculation Manager.
    Refer following link for more reference: -
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/hyp/PLN11.1.2_ClassicApp/index.html (Point 2)
    Hope this helps.
    Regards
    -SM

  • How to call business rules scripts via Java API

    Hi
    I have a problem. I have some scripts (business rules in essbase) that can be seen thru Administration Services Console under Business Rules folder. How can I execute these script using Provider Services (via Java API to EssBase interface)?

    hi
    i look too java api sample for "HBR Lounch"
    you can try found example in EAS folder
    C:\Hyperion\AdminServices\AppServer\InstalledApps\Tomcat\5.0.28\eas\webapps\hbrlauncher\MC_LaunchWindow.jsp
    please back, if you will have resolution :)

  • Error while running Business Rules and Calc scripts

    We are trying to run calc script in a report and we received the error saying that " An error occured while running the specified cacl script.Check the log for details", we received the similar error when working with Business rules.
    This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path.
    This error persists even after we changed the config file to its original one.
    Hyperion 9.3.1
    Oracle 10g
    Weblogic 9
    Solaris 10 64 bit
    john , please help. i will provide ytou with the exact error messages.. please tell me what this means ---> This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path
    what is that JVMMODULELOCATION for??
    thankyou,
    Rciky

    Hi,
    Here is details on what the JVMMODULELOCATION is :- http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/techref.htm
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Updatig External ID for a business rule or associated script

    Good Afternoon,
    Is there a way to update the External ID of a business rule and it's associated script after it has been saved.
    Thanks,
    Kyle

    Hi Kyle,
    It's not possible to change the External ID after it's been saved. It's the same behavior you see with script definitions.
    Regards,
    Vikram

  • Run calc script via business rule

    Hello all,
    I have calc scripts and business rules in my hyperion essbase.
    one of the calc scripts e.g. aggregates some values.
    In the business rule i copied the code from the calc script and this business rule can be executed in the planning tool.
    Now, everytime when i change the code from the calc script, i have to change same things at the business rule.
    And now my question:
    Is it possible to start a calc script with the business rule?
    e.g. content of business rule: execute "calc_aggregate"
    Is there a command?
    Then it would save time and i only have to change the calc script and not both.
    Thanks for your efforts,
    Chris

    1) try to use essbase 9.3 with dataexport command in calc script (this version essbase is compatible with planning versions 9x and 4.1)
    2) you can write (or found in google) UDF function for run system command or (and) export data set
    3) you can run system command from Planning web and run CSC and RUL from essmsh
    ER

  • 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

  • HI John: Advise for Business Rule or Calc Script

    Hi John,
    I need your Advice regarding Business Rule as earlier i took all ur advice seriously and also succeeded; This is toughest area for me.
    1) Any useful document which help me to understand Business Rule apart from HBR admin pdf ?
    1) Any Blog/Source/PDF/PPT especially for Planning Business Rule ?
    Thanks for any Help.
    Regards
    N Kumar

    Hi,
    Well business rules are really just calc scripts with a few additional features.
    So to understand business rules a good place to start is looking at calc script functions and commands, the essbase technical reference includes details on all this :- http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/techref.htm
    If you get stuck on calc scripts then the essbase forum is also a good place to ask for advice as there are many experts on there.
    I have not seen many sources for information relating to just business rules.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to track what your Calc Script/Business Rule is doing?

    Hi,
    I wanted to know the methods or the best way to keep a track of what your Calculation Script of Business Rule is doing once you execute it.
    Or suppose it fails for some reason and the reason is not a syntax error (that it usually would show up in EAS while validating)how can you know what's going wrong?
    Please let me know !
    ~ Adella

    All the CDFs are available at - https://www.samplecode.oracle.com/tracker/tracking/linkid/prpl1004/action/ExecuteQuery?query=essbase1
    There are also the Echo CDFs in the String collection -
    @JechoBoth - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoString - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoDouble - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    Saying that they usually need to be a calc block so if you are expecting to find where a calc is up to in an aggregation it is not going to tell you much.
    Also you have to watch out if you are calculating a large number of blocks then you can end up outputing more information that you would ever need.
    If you look in the essbase application log you can actually get an idea of which part of the script the calc is executing and times without the need for CDFs.
    Also if a script fails then the app log is the place to go and check.
    You can also look at the standard calc commands in essbase
    SET NOTICE - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_notice.html
    "Monitors the progress of your calculation by providing completion notices at intervals during the calculation. The number of notices depends on the level you specify."
    SET MSG - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_msg.html
    "Sets the level of messaging you want returned about calculations, and enables simulated calculations."
    or if on 11.1.2.x then the @RETURN function - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?return.html
    "Exits the calculation immediately under specified logical conditions. You can use the IF... ELSEIF calculation command block to specify the logical error conditions, and use the @RETURN function to exit the calculation with customized error messages and levels."
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Calc another calc script from a calc script or business rule

    is there a way to call a common calc script segment from other calc scripts or business rules. I do not want to replicate common code in multiple business rules. This common code updates the Essbase database, so it would need to take Essbase members as parameters and be able issue calculation commands. I do not find this possible with custom macros or custom functions. Thanks - Davis ([email protected])

    I do not think you can call another calc script from within a calc script. An alternative would be to write a MaxL script that strings multiple calc scripts together.Good luck.

  • Calc script, Business rule and business rule macro

    Hi John,
    Can we use calc script , BR sequence and a BR macro against different databases at a single go.
    In one calc script or BR sequence or BR macro itself can i calculate 2 databases

    If possible could you not start every post with my name, there are lots of others helping on this forum and they provide excellent answers
    Calc Scripts run against one database.
    Sequences can contain multiple business rules, in the launch variables you can set the database to run against for each rule (outside of the planning application though)
    Macros are called from a business rule and are run against the database the calling rule is being run against.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • 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

  • 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

  • Slow Performance with Business Rules

    Hello,
    Has anyone ever had slow performance with business rules? For example, I attached a calc script to a form and it ran for 20 seconds. I made an exact replica of the calc script in a business rules and it took 30 seconds to run. Also, when creating / modifying business rules in EAS it takes a long time to open or save or attach security - any ideas on things to improve this performance?
    Thanks!

    If you are having issues with performance of assigning access then I am sure there was patch available, it was either a HSS patch or planning patch.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • DataExport in Business Rules

    Hi,
    is there a way to make the DataExport calcscript command works in Business Rules ?
    I made the script below to export data in a calcscript and it works fine.
    //ESS_LOCALE French_France.MS1252@Default
    SET DATAEXPORTOPTIONS
    DataExportLevel "LEVEL0";
    DataExportRelationalFile ON;
    DataExportOverwriteFile ON;
    DataExportDecimal 2;
    DATAEXPORTDIMHEADER OFF;
    FIX ("Probables", "FY08","Officielle",@RELATIVE("E23",0));
    DATAEXPORT "File" "," "D:\Hyperion\AnalyticServices_LTQuebec\APP\LTQuebec\Finance\Dump_Data\TestBV_SBQ.txt" "#MI";
    ENDFIX;
    The main objective is to have a level-0 file of all data for a specific version, scenario, year and entity. This file will be used (after modification like inluding alias and comments from Planning) as a reference by users.
    Now, I would like to move it in a business rule to be able to pass parameters from a Planning form.
    In my example "E23" is an entity and I would like it to change to follow user security in Planning (user will not be able to choose other entity than those they can access in Planning).
    I tried to do it in a report but it is too slow as we have 12 dimensions, 3 of them having more than 1000 members.
    Is anybody did something similar before (using DataExport or another method) ?
    Thanks

    Hi John,
    my problem is not with DataExport performance, which is really fast (5 seconds or less). We have only level-0 members included in the export and none currently has dynamic calc.
    The performance issue is with reports that take a long time to generate as we have 1000+ Activity * 1000+ Products * 1000+ Sectors so, basically 1,000,000,000 cells * the numbers of entities included. Last time I ran my test report, it ran for 6 hours before I killed it. Even with "Suppress Missing", it seems to try to extract all data first and remove missing after.
    This is why we changed to DataExport, which is more efficient. But the fact that DataExport seems to be unrecognized by business rules cause me the problem that I can't use parameters and users will be able to see entities that are not their own (unless I create 200 scripts, one for each users, which will not really be a solution).
    Thanks

Maybe you are looking for