Business rule optimization

Hi all,
I have the following business rule:
FIX([TargetYr],[TargetVersion],"0000",@LDESCENDANTS([AllocAccount],0))
FIX([SourceMonth])
[TargetScenario] = ([SourceYr]->[SourceScenario]->[SourceVersion]->"0000")/([SourceYr]->[SourceScenario]->[SourceVersion]->"0000"->[AllocAccount]) * [AllocAccount];
ENDFIX;
FIX(@LIST([EndMonth]:[SourceMonth]))
[TargetScenario] = ([SourceMonth]->[TargetScenario])/([SourceMonth]->[SourceYr]->[SourceScenario]->[SourceVersion]->"0000") * ([SourceYr]->[SourceScenario]->[SourceVersion]->"0000");
ENDFIX;
ENDFIX;
It's a two-part script used for forecasting balance sheet accounts from a top-down perspective. The first part takes a balance in (say) June for a parent account, then allocates that amount down through its children accounts in June. The second part then takes the June balances for all the level 0 accounts and allocates them backwards through each month based on a source set of data, so that you how have a full year's worth of forecasted balances.
My questions are twofold:
1) Is there a way to change this rule so that I can enter a number of parent accounts in AllocAccount instead of just one at a time? Right now it only works if one parent is entered.
2) Is there a way to optimize this? It seems to take forever to run. I'm new to this so I doubt I'm doing this most efficiently.
Thanks for your time!

1) Is there a way to change this rule so that I can enter a number of parent accounts in AllocAccount instead of just one at a time? Right now it only works if one parent is entered.There's no reason you can't have multiple @LDESCENDANTS in your FIX. May I suggest that you tag these upper level members with a UDA and then FIX on those? Something like a @LDESCENDANTS(@UDA("Account", "ToBeAlloced")) should do it. You will need to maintain the outline with these hierarchies but that is likely (?) less painful than doing it in code.
2) Is there a way to optimize this? It seems to take forever to run. I'm new to this so I doubt I'm doing this most efficiently.Can you do this at level zero for your other dimensions/specific Scenarios and then agg up the results? If you have other dimensions, you are doing this allocation for all levels -- you can probably get away with level 0 of those other dims.
Regards,
Cameron Lackpour

Similar Messages

  • Validate data - business rules.

    Hi,
    We're using CDM Ruleframe to implement our business rules. As there was a need to bulk load a bunch of data, I disabled the business rules temporarily using the procedure disable_all_br.
    Is there a way to find out (afterwards) which of the records are in conflict with one or more business rules? I now that it can be checked for the static business rules via the procedure validate_all_statis_br, but what about the dynamic ones?
    Your replies are highly appreciated.
    Best regards,
    Nancy.

    Hi Vijay,
    just to make sure that I understand your scenario correctly:
    You import some business data in a table into the BRF+ (e. g. column1 = country, column2 = city ...). Now you want to process the lines of the table via a decision table namely one column (i. e. the corresponding business data) is equal to a condition column in your decision table (e. g. one condition  column = country).
    If this is the case I am afraid that there is no other option than to loop over your table with the data and evaluate the line with the decision table.
    Concerning your performance problems:
    In general there are a lot of notes that optimize the performance for the processing of decision tables, see these blogs:
    Great Performance Improvements in NW DSM/BRFplus
    Notes for Performance Optimization in BRFplus
    When you have your decision table in single match mode (so when the first matching entry is hit, the processing of the decision table stops and the result is returned) you can tune the performance be rearranging the row so that the ones that will match most propably are at the top of the decision table.
    Maybe there are combinations of data in your input that do not need to be processed in the decision table (I do not know your scenario, but theoretically that is possible) so perhaps you can reduce the amount of data that has to be processed by excluding these entries in the loop
    Hope that helps
    BR
    Christian

  • Check which data records have been updated or created by the business rule.

    Dear all,
       Is there any way to check which data records have been updated or created by the business rule?
       For ex:
       When I run a data package which execute some standard store procedure and the log shows :
    Executing SPRUNCONVERSION  'LEGALAPP', [ACTUAL], [GGGG],'GLOBAL','SPSCOPE_42412','SPLOG_125272'
    SPRunConversion Version 2.06
    20071200 - 210 Rows Calulated
    20071200 - 84 Rows Updated
    Anyway to see the data content of "84 Rows Updated "?
    Best Regards,
    Jeff

    Yes each aplication has 3 fact tables:
    FACTWB:Real time storage, when you send data it is stored here and this is linked to the FACTWB partition in OLAP which is a ROLAP partition to enable real time updates of the data.
    FAC2: Short term storage. If too many records are in the FACTWB the aplication becomes slow because these records need to be queried by the OLAP engine everytime new records are send to the database. To clean up te real time storage you can do a lite optimize, which will move the FACTWB records to the FAC2 partition. this lite optimize can be done even when users are in the system.
    FACT: this is the long term storage. When your reporting is finished you can run a full optimize to clean up both FACTWB and FAC2 tables and store it in the FACT table. This contains all your historical records.
    Evertime you run a reort, SAP BPC is looking at all 3 partitions and combines the data of the 3 partitions to present the correct value in your report. Remember that BPC is posting differences in the WB and not the final values. So if you have for example a record with 10 in the FAC2 partition and you send 12 to the database for that intersection, BPC will post only 2. When running a report it combines the 10 and the 2 which makes 12.
    Hope this makes it more clear.
    Joost
    Edited by: Joost Hoppenbrouwers on May 6, 2008 12:19 PM : Seems that James and I where writing pretty much the same post at the same time

  • Logs of Business rules

    Hi Experts
    I am running Consolidation business rules - IC Match & consolidation process , I can see the some number of records getting generated but not sure what exactly records by line item..
    Where I can check this records level details ?
    Thanks!!

    You are awesome !! Thanks for your valuable feedback..this will definitely help many people..
    I will just summarize from that post how we can check logs..
    Example: You want to test the Consolidation business rule & check what records it is writing..
    Step 1)Do Light Optimize so that request id in the Manage of consol cube in BW closes( Yellow->Green)
    Step 2)Run the consolidation business rule, you will see some 250 records written..
    Step 3)Again right click on consol cube in BW and hit Manage and now you can see new request id with yellow status..
    Step 4)Copy the request ID of the new entry and filter in Display data and now you can see that 250 records which was run by business rules
    I guess this will be helpful for someone !! Cheers!!

  • Library of Business Rules

    An existing system in my company has a large repository of decision tables, that we would like to port to decision tables to be run on Oracle Business Rules engine (and exposed through a single service).
    What would be the best way to do this?
    To me, JDeveloper does not seemthe right choice because: a) it would take long time to port the tables manually, and b) I am not sure if creating (only) a library of business rules (without any other componnets) is possible (in JDeveloper).
    I have not tried Business Process Composer?
    Once the decision tables are ported, we would like to use Oracle tools to manage the tables (modify existing and create new onces). I assume Businesss Process Composer would be good for that.
    Any suggestions would be very appreciated.
    Thank you,

    You are awesome !! Thanks for your valuable feedback..this will definitely help many people..
    I will just summarize from that post how we can check logs..
    Example: You want to test the Consolidation business rule & check what records it is writing..
    Step 1)Do Light Optimize so that request id in the Manage of consol cube in BW closes( Yellow->Green)
    Step 2)Run the consolidation business rule, you will see some 250 records written..
    Step 3)Again right click on consol cube in BW and hit Manage and now you can see new request id with yellow status..
    Step 4)Copy the request ID of the new entry and filter in Display data and now you can see that 250 records which was run by business rules
    I guess this will be helpful for someone !! Cheers!!

  • Integration with Corticon Business Rules Server

    Has anyone integrated the Corticon Business Rules Server into BEA WL ? The CBR Server can be deployed as a stateless session bean, but I am not really sure hwo to integrate a session bean into WL. Maybe sonmeone can point me to the proper docs. If someone has used Corticon, it would be even better!
    Thanks

    There are two ways you can do it.
    1. Oracle Business Rules can be exposed as standard soap based web-services that can be consumed in OSB through Business Services. Proxy Services in OSB can call these BS created out of the rules services in their message pipelines.
    2. Second option is to use DIRECT-BINDING to communicate between a Rule based Composite and OSB. Direct Binding optimizes the communication between OSB and SOA servers at the transport level.
    Here are some couple of blogs that u might find helpful
    http://beatechnologies.wordpress.com/2011/04/19/using-and-testing-complex-business-rules-in-oracle-soasuite-11g/
    http://biemond.blogspot.com/2009/11/calling-soa-suite-direct-binding.html

  • Optimizing the business rule.

    We have a very simple business rule in logic but it is taking 10 hours to run. The rule has 2 run time prompts which allows users to select in one run time prompt([rtpCenter) of a required member and another run time prompt([rtpAdjustment]) is to enter the percentage amount. The accounts and time period dimensions are Dense and all other sparse dimensions. If we run the rule for one member it is running for 4 min but if we run for the idescendants (total members are around 200)of whole dimension it is running 10 hours. Is there any way to optimize the business rule. I verified the caches and it is according to the calculations. Please let me know if you need any more information.
    SET UPDATECALC OFF;
    SET CALCPARALLEL 8;
    SET CALCTASKDIMS 9;
    SET CACHE HIGH;
    SET LOCkBLOCK HIGH;
    SET AGGMISSG ON;
    FIX(@LIST(@UDA("Account", "TargetAcc-O&M"),@UDA("Account", "TargetAcc-Cap"),
    @UDA("Account", "TargetAcc-SP")),"TotalYear","Working","Trg" &BudYear,"B.00","R.000",
    @IDESCENDANTS("Total Activity",0),@WITHATTR("FundType","==","O&M"),
    @IDESCENDANTS([rtpCenter]),@IDESCENDANTS("Total Project"))
    "Proposed Budget" ="Approved"->"Original Budget"->&PriorYear->"YearTotal"*(1+([rtpAdjustment]));
    ENDFIX
    ------------------------------------------------------------------------------------------------------------------------

    Hi,
    It seemed to me that this is mainly because of series of issues:
    1. You are running the calculation on a sparse dimension (Scenario)
    2. You are using a dynamic calc dense member on cross dimension (Year Total)
    3. Dense dimension members are fixed with UDA (Account)
    I would highly recommend taking a different approach. Assuming TotalYear is a base period member try below:
    FIX(@LIST(@UDA("Account", "TargetAcc-O&M"),@UDA("Account", "TargetAcc-Cap"),
    @UDA("Account", "TargetAcc-SP")),"Trg" &BudYear,"B.00","R.000",
    @IDESCENDANTS("Total Activity",0),@WITHATTR("FundType","==","O&M"),
    @IDESCENDANTS([rtpCenter]),@IDESCENDANTS("Total Project"), "Proposed Budget")
    "Working"(
    @CALCMODE(BOTTOMUP);
    "TotalYear" ="YearTotal"->"Approved"->"Original Budget"->&PriorYear->*(1+([rtpAdjustment]));
    ENDFIX
    Cheers,
    Alp

  • Error while creating a Business rule dictionary in Jdevloper 11g

    Hi,
    I am getting the following error when i define the Inputs and outputs during creating on a new business rule dictionary.
    Some XML schemas are not in the "xsd" directory! gardes.xsd
    Please manually move or copy the Schemas
    I am following the "Creating a Rule-enabled Non-SOA Java EE Application" guide in Oracle® Fusion Middleware User's Guide for Oracle Business Rules, 11g Release 1 (11.1.1)
    The two schema files generated were having different content after creation of XML schema file so I copied the file to make them same. Its still giving me the same error.
    Please Help.
    Thanks,
    Mac

    Please post business rules questions on the SOA Suite forum:
    SOA Suite

  • Error while selecting planning app in Business Rules

    Hi ,
    I am not being able to select the planning outline while developing business rules (but I can select the Essbase Outline). Whenever I expand the Planning node, an error pops up the details of which says "Error connecting to Essbase server machinename/testapp." There is a details button which says: "Could not log into Planning "Detail:Could not log in to Planning Server".
    Can anyone help me out. I am not being able to view the rules in the planning UI .
    I have tried for recycle the EAS even though i am getting same error.
    could you please let me know the solution for this
    Thanks
    mahesh

    Hi,
    Always follow this process, stop the planning service and eas service.
    Start RMI service
    Start EAS
    Start Planning
    Log into the web planning application
    Then go into EAS and create a new rule, select an outline to the application you have just logged into via web.
    Also if you are using the default admin user to log into EAS try another user that has been provisioned with business rules roles
    If you still have problems then go to My Oracle Support (formely metalink3) then have a look at doc id - 763345.1
    Ok?
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Business Rules Instance disappeard in projects folder in Shared Services

    Hi all,
    I have this strange thing happend to me today morning. when i logged into the Shared Services i can find the Business Rules folder but i couldnt find the instance for it.Is there any way i can reconfigure it so that i can see the instance back again in Shared Services.
    Environment: Windows server, Hyperion version 9.3.1
    Any help on this would be greatly appreciated.
    Thanks in Advance

    Please find the error log below
    com.hyperion.cis.config.wizard.RunAllTasksWizardAction, ERROR, Error:
    java.lang.Exception: Registeration failed: error.generalSaveModel.Registeration failed: error.generalSaveModel.
         at com.hyperion.cis.config.CmsRegistrationUtil.registerApplication(CmsRegistrationUtil.java:222)
         at com.hyperion.cis.config.wizard.RunAllTasksWizardAction.executeHubRegistrationTask(RunAllTasksWizardAction.java:360)
         at com.hyperion.cis.config.wizard.RunAllTasksWizardAction.execute(RunAllTasksWizardAction.java:165)
         at com.installshield.wizard.RunnableWizardBeanContext.run(Unknown Source)
    Thanks

  • 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

  • Business rule in MDS 2012 error: A database error has occurred. Contact your system administrator.

    I get the following information in my MDS log as well as the above error message when I execute a business rule that has a condition of AND and an Action of Attribute must be unique in combination with 2 other attributes. 
    I'm running SQL Server 2012 11.0.3000
    MDS database version 11.1.0.0
    Any ideas?
    MDS Error: 0 : SqlException message: A database error has occurred. Contact your system administrator.
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.HandleExceptions(Exception ex)
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteDataSet(String spName, CloseConnectionBehavior closeBehavior, Object[] parameterValues)
       at Microsoft.MasterDataServices.Core.DataAccess.MasterDataAccess.<>c__DisplayClass5.<ValidateEntityMembers>b__4()
       at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteMethodWithDeadlockProtection(MethodDelegate method)
       at Microsoft.MasterDataServices.Core.BusinessLogic.Validations.ValidateMembers(Int32 versionId, Identifier entityIdentifier, IList`1 memberIds, RequestContext context, OperationResult results)
       at Microsoft.MasterDataServices.Core.BusinessLogic.Validations.Process(ValidationProcessCriteria criteria, Boolean commitVersion, Boolean validateEntityAsync, Boolean returnValidationResults, RequestContext context, OperationResult results)
    SQL Error Debug Info: Number: 208, Message: Invalid object name 'cteDuplicates0a070e37b106b9e3efe35a455076efa7'., Server: SQLRS-01, Proc: udp_SYSTEM_3_38_CHILDATTRIBUTES_ProcessRules, Line: 230
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udp_SYSTEM_3_38_CHILDATTRIBUTES_ProcessRules, Line: 230
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: , Line: 0
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udpBusinessRule_AttributeMemberController, Line: 0
    SQL Error Debug Info: Number: 266, Message: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1., Server: SQLRS-01, Proc: udpValidateMembers, Line: 0
        DateTime=2013-08-15T13:25:15.6684023Z
    MDS Error: 0 : <ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <Error>
        <Code>208</Code>
        <Context i:nil="true" />
        <Description>A database error has occurred. Contact your system administrator.</Description>
      </Error>
    </ArrayOfError>
        DateTime=2013-08-15T13:25:15.7152026Z

    OK I bit the bullet and contacted support on this one.
    There is a known issue with MDS 2012 and business rules with a combination of "must be unique" attributes. If you do not list the attributes in the same order that they were created you will get the generic error I cited. At first they told me it must be
    in the same order the attributes are in and that worked on one entity but not the other. The difference was that in the second entity I previously rearranged the attributes in question. Once I changed the order in the business rule to reflect the *original*
    order it worked like a champ.
    Hopefully this helps save someone some time and money.

  • Business rule takes time to open

    Hi,
    Business rule takes much time when trying to open it.
    I'm new to essbase. Can any one tell in which log i can get the information like why it takes much time like that.
    Thanks
    Kumar

    we are facing this issue for particular user. In the same system, we tried with two different users. for 1st user that BR is opened in a minute, but the same BR took around 20mins to open for 2nd user
    OS - Window XP
    EAS version - 9.3.1
    Example
    A is 1st user --> XX business rule took 1min to open
    B is 2nd user --> XX business rule took 20mins to open
    Here both the users are having same access on the BR and the applications
    Thanks
    Kumar

  • User Variable Options: How can I use them in a Business Rule?

    How can I use a "User Variable" set in File / Preferences in a Business Rule? It doesn't seem to appear as an Essbase Substitution Variable or as a Global Variable of Business Rules. The only way I know how to use it is to place the dimension on the POV or Page dimension of a data form, then use a Global Variable in a run time prompt to pick the member and run a BR against it, or some function of it.
    What do I do if I want to have that dimension in Columns or Rows? How can I set a BR to directly reference the member chosen under User Variable Options?
    J

    Thanks Alp, but I can't seem to reproduce what you are writing below. I want to refer my Business Rule to address the value set in File / Preferences / User Variable Options; no matter what members I show elsewhere in the data form.
    My other workaround is through a run time prompt and hope the user selects the appropriate user variable at the very bottom of the selection list in order to calculate the appropriate list of members.
    J

  • How to get rid of Business Rule in JhsModel: JHS-00128 Allowable Values req

    JHeadstart 10.1.3.2
    We are using FlexItems in our application.
    The JhsModel implementation, shipped in Jar file jhsadfrt-10.1.3.jar, contains the underlying ADF BC objects for the FlexItem functionality.
    When we try to create (or remove) a FlexItemDefinition of type Dropdown List, we are stopped by the error: JHS-00128: Allowable Values are required for this Item Display Type.
    We do not want that - we have a UID that does not allow editing of master and details on the same page. Therefore, we will never be able to successfully create a dropdown list item since we cannot in the same transaction create the allowable values as well.
    How could we disable this business rule - or remove it altogether? I suppose it is implemented somewhere in the jar file that contains the JhsModel project. What is the recommended way of disabling this constraint?
    thanks for your help
    Lucas

    Hi Lucas,
    This error is raised if the number of allowable values is zero and the allowable values query of the flexitemdefinitions entity is 'empty'. You could write a (temporary) dummy allowable values query in the flexitemdefinitions entity in order to save the master, and then once you've input the allowable values in the details page, remove or reset the value in the allowable values query attribute of the flexitemdefinitions entity.
    Hope this helps,
    Regards,
    Ibrahim

Maybe you are looking for

  • Call forward to external number(mobile)

    Dears please help me on this voice translation-rule 1 rule 1 /2837599/ /599/ rule 6 /2837596/ /596/ rule 7 /.*2837555/ /123/ 2837... are my SIP DID nos 123 is my AA extn 596 and 599 is an ip phone exten i need to transfer directly to an external no (

  • Windows recognizes iPod, but not iTunes or iPod updater, causes freezing

    I'm having some issues with my 60GB iPod Photo. I tried to store my friend's music on my iPod as files. Upon uploading them to my own computer, some files caused freezing, requiring me to disconnect and reconnect the iPod. I finally gave up and delet

  • Material Class 001 - Characteristics not comming at the time of GR

    Hello, I am trying to use material class 001 in material. I have created Characteristics and assigned to Class (001) and have attached this class to Material. But when I do Goods Receipt of PO, I do not see any tab with classifications. I have also t

  • Sales order and purchase order date management

    Hi all, I am new to SAP so please pardon the question in advance if this is a basic one. I need a little help with purchase order and sales order dates.  Our supplier runs SAP and our two systems are tied together. Currently my supplier is not updati

  • This operation has been cancelled due to restrictions in effect on this computer

    We are running Windows 2003 TS for client access their report. We create a group policy to "Hide these specified drives in My Computer" and "Prevent access to drives from My Computer". The problem is when a TS user tries to save the PDF report, he re