Dynamic Business Rules - Where to place

Hi,
I am doing POC for a fortune 10 client and they have some business rules before crud actions are going to take place in DB. We have very minimal tables (less than 10) and its small application but web service (btw, this has to be webservice app) consumers are around 200 per sec.
The requirement with respect to business rules are also minimal (like 30 rules for entire project) but these rules will change very often(like once in a month). Assume these rules are on the enterprise level and not on the application level.
I am looking for best possible solution to achieve by developing small rules engine or putting them into another xml and apply transformation once request arrives.
I am confused of deciding which is better like putting business rules in xslt vs java business object. XSLT is allowing me to change rules with minimum impact on the system but it is hard to maintain and adding new rules (we are not anticipating any more new rules within next two years).
On the other hand, If I put in Java business object then it allows lot of flexibility to inject new rules and easy to maintain with cleaner code.
So, in short my questions are below.
1. Is it good practice to put small set of business rules in xml/xslt?
2.are there any alternative business rules engines are available?
Any other suggestion related to above discussions are welcome.
Thanks.

I believe this is what you want.
DROOLS - drools - dynamic rules for java
http://sourceforge.net/project/showfiles.php?group_id=37037
http://www.onjava.com/pub/a/onjava/2005/08/03/drools.html?page=2
good luck.

Similar Messages

  • Dynamic Business Rules

    Hi,
    I am trying to create a dynamic business rule through endeca developer studio. I have created a zone, style and a rule.
    My rule doesn't contain any triggers and I have set it to "Everywhere". I have added a Featured records so that a particular record appears everytime. In Target tab, I have added a dimension value which is a Auto generated.
    But when I run baseline_update I do not see any promoted records in my endeca_jspref page. Is there anything which I am missing to reflect the promoted records in my endeca_jspref page? Please help.
    Thanks,
    Sav

    If you are using business rules I'm guessing you are on an earlier version of Endeca and/or not using Experience Manager. If so, is Workbench integration enabled and merch_rule_group_default.xml set up as a Workbench-managed file?  You can see this in the "ConfigManager" component, property list of webStudioMaintainedFileX".  If merch_rule is listed there, then the business rules configured via Developer Studio are ignored in favour of the ones set up in Workbench, so try running ./control/update_web_studio_config.sh, then adding the business rule via Workbench (http://<server>:8006/admin).
    Michael

  • 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/

  • Conditional vs Business rule transitions

    Any thoughts on when I should be using a business rule transition instead of a conditional? Any need to use this yet?
    I understand the primary distinction is "dynamic" but am having a hard time getting my head around the difference without an example.
    Cheers,
    Andrew
    Andrew

    Andrew,
    I think business rules are mostly useful when modeling a condition that is likely to change, and you want to make it easy to change the condition on-the-fly, without having to change and re-deploy the process.
    A simple example is when there is a transition that must be followed only when a variable value is above some predefined value (for example, a manager must approve all orders above $ 10K).
    If using a business rule, this "10K" value can be easily changed as needed.
    The ALBPM documentation has some guidelines on when to use Business Rules (section "When to use Dynamic Business Rules):
    http://edocs.bea.com/albsi/docs60/studio/designer/business_rules_editor/t_Using_Dynamic_Business_Rules.html
    My example is taken from the one in the document describing ALBPM 6.0 new features:
    http://edocs.bea.com/albsi/docs60/resources/ALBPM6.0_NewFeaturesOverview.pdf
    regards,
    Eugenio

  • Dynamic validation of Business Rules

    Who has a good thought/example about a principle of dynamically validating Business Rules without coding every time each BR?
    I am thinking about a table where I can enter the expressions like:
    - <p1> is not Null
    - <p1> not in (select 'x' from <table>)
    - <p1> < 2000
    This logically, simple expressions should return a boolean expression (true or false).

    First, in a well designed data model, I'm not sure I see the need for data validation logic to change regularly. If a particular column cannot be NULL today, it would be rather unlikely that it would somehow need to be NULL tomorrow.
    Second, I'm not sure I see what this approach buys you over the much simpler approach of adding and removing check constraints if the data model changes. Adding and removing a constraint is pretty trivial-- orders of magnitude less difficult than doing the analysis to determine what constraint needs to change and what impact that has downstream.
    Third, I would suspect that if you need to encode these sorts of constrains in a table, your system will kill downstream systems with regularity. If p1 is NOT NULL today, but tomorrow it suddenly allows NULL values, a consumer application might well break (or worse, silently return incorrect results). Data changes should not be able to screw up downstream systems.
    Fourth, if you did build such a system, you would have to build your own constraint validator, rather than being able to rely on Oracle's (unless you wrote code to create and drop Oracle constraints based on values in a table, but that seems rather convoluted). Given that Oracle's constraint validation engine is highly optimmized and highly accurate, a home grown engine isn't going to look particularly good in comparison.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Business Rules(Rule Author)-Where to get  Car Rental[car-objs.jar file]

    I am using Oracle SOA Suite 10.1.3.1.0 and Oracle 10 G 10.2.0.3.0, I am learning to use Rule Author and following "Getting Started with Rule Author" link-->"http://otndnld.oracle.co.jp/document/products/as10g/101300/B25221_03/web.1013/b15986/guistart.htm#sthref93"
    however I am getting stuck on one point "2.5 Defining a Data Model for the Car Rental Sample" because I am unable to locate car rental sample file. please help me finding the location of file in SOA suite, If some one has this file kindly send it to me on "[email protected]".
    The Name of the jar file is "car-objs.jar"
    thanks
    Yatan
    Edited by: Yatanveer Singh on Dec 15, 2008 12:28 AM

    hi Guys please help, I am still stuck I have to learn Rule Author in order to work on Business Rules, I am not able to locate car-objs.jar file no where in SOA suite or Oracle 10 g. I am not able to follow the sample provided by Oracle "http://download.oracle.com/docs/cd/B25221_04/web.1013/b15986/guistart.htm".
    If I wont get help form forum then where to get help from??
    Please tell me where to find car-objs.jar file or email me [email protected]
    thanks
    Yatan

  • Where and how to create business rules?

    Hi All,
    1) Where and how to create business rules?
    2) How to configure Rule Engines (Ex: JRULE Engine or any other Rule Engines)?
    3) Whar products are available for Rule Engines?
    Thanks in advance

    Hi,
    You have some options on business rules.
    If you just want to create business rules that are easy for business owners to edit without a lot of training, Oracle BPM has a simple business rules creation and end user edit capability. The benefits to using the rules that come with Oracle BPM are:
    <li> they are simple and easy to edit
    <li> end users can get up to speed quickly to edit them
    <li> when changed, the business process is immediately impacted
    <li> they can use the Oracle BPM business parameters that also come with the product
    Drawbacks are:
    <li> you can only use Project variables as the variable content inside of them
    <li> if a company already has a business rules engine, they are different that the company's standard
    Business rules engines have been used with Oracle BPM. If you are a consultant, first ask if there is a standard business rules engine that the company already has purchased that they use (e.g. iLog from IBM, Corticon...). If this is the case, you typically integrate to the rules using a web service interface that the business rules engine exposes.
    If they do not already have a business rules engine, consider Jrules. The benefits are:
    <li> it is a part of the Oracle BPM Suite that they might have purchased
    <li> version 11g of the Jrules is coming out soon with a friendly front end
    Hope this helps,
    Dan

  • Where can I find the complete Oracle Business Rules Java API Reference ?

    Does anybody know where to get the complete Oracle Business Rules Java API Reference ?
    The version on http://download-east.oracle.com/docs/cd/B31017_01/web.1013/b28966/toc.htm is incomplete. It is missing the entire "oracle.rules.sdk.ruleset" package.
    Ki

    Kim,
    The oracle.rules.sdk.ruleset package is only for internal operation. The public interface to creating rules is oracle.rules.sdk.editor.ruleset , and this is included in the javadoc.

  • Where can I view all Business rules that are currently running

    Hi,
    I was told that this is available in our Planning v11 but can't find it.
    where can I view all processes (such as Business rules) that users are currently running ?
    thanks.

    Hi,
    They are probably meaning the job console > Tools > Job console.
    More information > http://download.oracle.com/docs/cd/E12825_01/epm.111/hp_user/job_stat.html
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Dynamic filename in Business Rules

    Hi,
    I would like to use the DataExport command in my business rules to extract level-0 data in a file as a reference for user. I would need to extract data only for Entities that a user has access to (I figured that I could use parameters, link the rule to a Planning form and use "members" on form).
    My problem is that I would need a different filename for each execution. Something like :
    ..\userABC_20090513_100350_BV_SBQ.txt
    ..\userDEF_20090513_100430_BV_SLVQ.txt
    Is there a way, in business rules, to find the following info ?
    - the user who is currently running the rule.
    - the current date.
    - the current time.
    If not, is there a way to include a shell in a business rule. I have a small .exe that return the date or time as an "errorlevel" code that I could use if I can call a shell in the rule.
    Finally, a theorical question : is there an other way to ensure that only the user who run the rule can access the generated file (always while using business rules) ?
    Thanks

    First, in a well designed data model, I'm not sure I see the need for data validation logic to change regularly. If a particular column cannot be NULL today, it would be rather unlikely that it would somehow need to be NULL tomorrow.
    Second, I'm not sure I see what this approach buys you over the much simpler approach of adding and removing check constraints if the data model changes. Adding and removing a constraint is pretty trivial-- orders of magnitude less difficult than doing the analysis to determine what constraint needs to change and what impact that has downstream.
    Third, I would suspect that if you need to encode these sorts of constrains in a table, your system will kill downstream systems with regularity. If p1 is NOT NULL today, but tomorrow it suddenly allows NULL values, a consumer application might well break (or worse, silently return incorrect results). Data changes should not be able to screw up downstream systems.
    Fourth, if you did build such a system, you would have to build your own constraint validator, rather than being able to rely on Oracle's (unless you wrote code to create and drop Oracle constraints based on values in a table, but that seems rather convoluted). Given that Oracle's constraint validation engine is highly optimmized and highly accurate, a home grown engine isn't going to look particularly good in comparison.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Where can i find Business rules console in oracle SOA11G?

    Hi All,
    I am using the business rule component in the SOA 11G.
    After deploying my BPEL process i want to edit the values of rule set at run time. i am not able to find any console for business rules like in 10G.
    please let me know
    Thanks&Regards,
    Sudhakar

    Sudhakar,
    There is no UI provided for rules modification in SOA 11gR1 (11.1.1.1.0). User has to create their own UI by implementing the exposed APIs.
    However its available as part of 11gR1 Patchset1 (11.1.1.2.0)
    URL would be http://host:soa_port/soa/composer

  • Rolling years dynamically updated from a business rule

    Hi All,
    Can anyone advise on how they have solved the problem of rolling opening balances from one year to another in essbase\planning. Our users could potentially want to forecast out x number of years and we don't want to necessarily hardcode out the business rule with each year. At them moment they are being prompted for the number of years that they will roll out and also the start and end year, they then have a business rule that loops the number of years and then fixes on the year range. This works however it will lead to performance issue going forward as the loop combined with the fix on the range will loop say 25 times for 5 years (5x5) instead of only 5 times.
    Has anyone any pointers as to how to restrict this to only a year per pass or has anyone had this problem before ?
    Thanks in advance

    Thanks,
    We have prompts in already , the problem is that for our opening balances to flow through we need to calculate one year, then the next, then the next etc... but we don't know each time we run the business rule how many years we will forecast for (it is user dependant). Our code works but it loops on the whole subset of the years in range based on the user selection.

  • Business Rule fails - where

    Hi,
    I have a business rule that does some cross dimension multiplication.
    I think it is now running into a data problem, as it fails when it has worked consistently for sometime.
    Is there anyway to get any diagnostics on what data is being accessed when the script errors??
    The only thing I can think of that would cause failure would be an attempt to multiply null or 0, the latter causing a problem because of subsequent complications of rounding the sum of the result back to the original figure - but of course these are only educated guesses as I have no means of knowing what data it choked on - can I find this??
    thanks,
    Robert.

    Could try using the Set Msg and Set Notice commands at the outset of your BR?
    IE:
    SET NOTICE HIGH;
    SET MSG DETAIL;
    as per
    http://docs.oracle.com/cd/E10530_01/doc/epm.931/html_esb_techref/calc/set_msg.htm
    http://docs.oracle.com/cd/E12032_01/doc/epm.921/html_techref/calc/set_notice.htm
    You might already be aware of these or they might not get you exactly what you want, but may be worth a shot....
    Thanks
    JB

  • Solving "COMMIT business rules" on the database server

    Headstart Oracle Designer related white paper
    "CDM RuleFrame Overview: 6 Reasons to get Framed"
    (at //otn.oracle.com/products/headstart/content.html) says:
    "For a number of business rules it is not possible to implement these in the server
    using traditional check constraints and database triggers. Below you can find two examples:
    Example rule 1: An Order must have at least one Order Line ..."
    But, one method exists that allows solving "COMMIT rules" completely on the database level.
    That method consists of the possibility of delaying the checking of the declarative constraints (NOT NULL, Primary Key, Unique Key, Foreign Key, Check Constraints) until the commit
    (that method was introduced first in the version 8.0.).
    E.g. we add the field "num_emps" to the DEPT table, which always has the value of the number
    of the belonging EMP rows and add DEFERRED CK which uses the values from that field:
    ALTER TABLE dept ADD num_emps NUMBER DEFAULT 0 NOT NULL
    UPDATE dept
    SET num_emps = (SELECT COUNT (*) FROM emp WHERE emp.deptno = dept.deptno)
    DELETE dept WHERE num_emps = 0
    ALTER TABLE dept ADD CONSTRAINT dept_num_emps_ck CHECK (num_emps > 0) INITIALLY DEFERRED
    Triggers that insure the solving of the server side "COMMIT rules" are fairly simple.
    We need a packed variable that is set and reset in the EMP triggers and those value
    is read in the bur_dept trigger (of course, we could have place the variable in the package
    specification and change/read it directly, thus not needing the package body,
    but this is a "cleaner" way to do it):
    CREATE OR REPLACE PACKAGE pack IS
    PROCEDURE set_flag;
    PROCEDURE reset_flag;
    FUNCTION dml_from_emp RETURN BOOLEAN;
    END;
    CREATE OR REPLACE PACKAGE BODY pack IS
    m_dml_from_emp BOOLEAN := FALSE;
    PROCEDURE set_flag IS
    BEGIN
    m_dml_from_emp := TRUE;
    END;
    PROCEDURE reset_flag IS
    BEGIN
    m_dml_from_emp := FALSE;
    END;
    FUNCTION dml_from_emp RETURN BOOLEAN IS
    BEGIN
    RETURN m_dml_from_emp;
    END;
    END;
    CREATE OR REPLACE TRIGGER bir_dept
    BEFORE INSERT ON dept
    FOR EACH ROW
    BEGIN
    :NEW.num_emps := 0;
    END;
    CREATE OR REPLACE TRIGGER bur_dept
    BEFORE UPDATE ON dept
    FOR EACH ROW
    BEGIN
    IF :OLD.deptno <> :NEW.deptno THEN
    RAISE_APPLICATION_ERROR (-20001, 'Can''t change deptno in DEPT!');
    END IF;
    -- only EMP trigger can change "num_emps" column
    IF NOT pack.dml_from_emp THEN
    :NEW.num_emps := :OLD.num_emps;
    END IF;
    END;
    CREATE OR REPLACE TRIGGER air_emp
    AFTER INSERT ON emp
    FOR EACH ROW
    BEGIN
    pack.set_flag;
    UPDATE dept
    SET num_emps = num_emps + 1
    WHERE deptno = :NEW.deptno;
    pack.reset_flag;
    END;
    CREATE OR REPLACE TRIGGER aur_emp
    AFTER UPDATE ON emp
    FOR EACH ROW
    BEGIN
    IF NVL (:OLD.deptno, 0) <> NVL (:NEW.deptno, 0) THEN
    pack.set_flag;
    UPDATE dept
    SET num_emps = num_emps - 1
    WHERE deptno = :OLD.deptno;
    UPDATE dept
    SET num_emps = num_emps + 1
    WHERE deptno = :NEW.deptno;
    pack.reset_flag;
    END IF;
    END;
    CREATE OR REPLACE TRIGGER adr_emp
    AFTER DELETE ON emp
    FOR EACH ROW
    BEGIN
    pack.set_flag;
    UPDATE dept
    SET num_emps = num_emps - 1
    WHERE deptno = :OLD.deptno;
    pack.reset_flag;
    END;
    If we insert a new DEPT without the belonging EMP, or delete all EMPs belonging to a certain DEPT, or move all EMPs of a certain DEPT, when the COMMIT is issued we get the following error:
    ORA-02091: transaction rolled back
    ORA-02290: check constraint (SCOTT.DEPT_NUM_EMPS_CK) violated
    Disvantage is that one "auxiliary" column is (mostly) needed for each "COMMIT rule".
    If we'd like to add another "COMMIT rule" to the DEPT table, like:
    "SUM (sal) FROM emp WHERE deptno = p_deptno must be <= p_max_dept_sal"
    we would have to add another column, like "dept_sal".
    CDM RuleFrame advantage is that it does not force us to add "auxiliary" columns.
    We must emphasize that in real life we would not write PL/SQL code directly in the database triggers, but in packages, nor would we directly use RAISE_APPLICATION_ERROR.
    It is written this way in this sample only for the code clarity purpose.
    Regards
    Zlatko Sirotic

    Zlatko,
    You are right, your method is a way to implement "COMMIT rules" completely on the database level.
    As you said yourself, disadvantage is that you need an extra column for each such rule,
    while with CDM RuleFrame this is not necessary.
    A few remarks:
    - By adding an auxiliary column (like NUM_EMPS in the DEPT table) for each "COMMIT rule",
    you effectively change the type of the rule from Dynamic (depending on the type of operation)
    to a combination of Change Event (for updating NUM_EMPS) and Static (deferred check constraint on NUM_EMPS).
    - Deferred database constraints have the following disadvantages:
    When something goes wrong within the transaction, then the complete transaction is rolled back, not just the piece that went
    wrong. Therefore, it becomes more important to use appropriate commit units.
    There is no report of the exact row responsible for the violation nor are further violations either by other rows or of other
    constraints reported.
    If you use Oracle Forms as a front end application, the errors raised from deferred constraints are not handled very well.
    - CDM discourages the use of check constraints. One of the reasons is, that when all tuple rules are placed in the CAPI,
    any violations can be reported at the end of the transaction level together with all other rule violations.
    A violated check constraint would abort the transaction right away, without the possibility of reporting back other rule violations.
    So I think your tip is a good alternative if for some reason you cannot use CDM RuleFrame,
    but you'd miss out on all the other advantages of RuleFrame that are mentioned in the paper!
    kind regards, Sandra

  • Error while executing business rule "Please increase CalcLockBlock setting"

    Hello,
    An error is occouring when I execute a particular business rule. The following message appears when I view the error from Job Console:
    "Dynamic calc processor cannot allocate more than [100] blocks from the heap. Please increase CalcLockBlock setting and then retry"
    No such error is occouring when I execute any other business rule.
    Can anyone please tell me how to resolve it?
    Regards,
    Sa'ad

    Hi Sa'ad,
    in the business rule your getting the error message is a calculation, where the result needs more than 100 blocks to access to.
    The error comes from three possible causes:
    1. Lockblock setting is low (essbase.cfg)
    2. Your data cache setting is to small
    3. Block size is to large
    I think you have to increase data cache settings (by default 8192 KB) to.
    Cheers
    Uli
    Edited by: Uli Drexelius on 13.07.2011 14:23

Maybe you are looking for

  • This item is currently being modified, please try again later since iTunes9

    Hi, I tried to find an answer to this issue believing I wouldn't be the only one to see this, but I could not find the answer to my iTunes issue. I updated to iTunes 9, since I did that, I am unable to buy any Season Pass. I tried with 3 different se

  • PDF of Dreamweaver CS3?

    Im looking to make a digital proof of my website so that I can email it  without having to send the files (I only want to make a digital image -  jpg, pdf, etc.), but somehow Acrobat does not seem to be compatible with  Dreamweaver!  I've tried openi

  • TS3276 code 204 in my yahoo email feed on home page

    email not displaying on homepage

  • PHOTOSHOP CS6 ERROR CODE 16

    Problem with photoshop CS6 in my account on my computer. It says: Please uninstall and reinstall the product. If this problem still occurs, please contact Adobe technical support for help, and mention the error code shown at the bottom of this screen

  • Cannot install photoshop or lightroom either the real or trial versions

    I cannot get the photography package to install. I have tried for days to get it to work. I started with the trial version and then went to the $9.99 per month photography package. The download has seemed to work multiple times but won't install.. I