ADF BC Validation or Rule Engine withc one?

Hello ADF BC Champions
I have ADF BC Application , I'm constructing Business Service by Application Module and Nested Application Module feature and of course I'm Using ADF Business Components. I wonder that how can I separate my rules from application ? for example using Oracle Rule Author and Engine tool(Oracle SOA Suite Family)
Please say me if you have any knowledge or document about this problem.
Thanks Mehdi

You could use CDM Ruleframe, JHeadstart has build in support for this.
For CDM Ruleframe you need Oracle Designer, and a separate licence, part of Headstart.
We have used this in a large JHeadstart application.
If you are not using Designer, you can try RuleGen, I am evalating this product now.
RuleGen isn't free either...
By the way, these two frameworks validate the rules in the database, so when accessed via SQL, the rules are validated too.
I don't know if using Oracle Rule author is a valid option.
Groeten,
HJH

Similar Messages

  • Rules Engine Design Questions

    Rules Engine Questions:
    1. Rules are processed in the order they are created in dictionary file if the priorities are the same. Is it true?
    for eg: if the order you see on the screen in rules dictionary window is:
         rule1 --> set var1 = 10
         rule2 --> set var1 = 20
         rule3 --> set var1 = 30
         rule4 --> set var1 = 40
         rule5 --> set var1 = 50
         result would be 50
    2. I want to use the rules engine for validations.
    Eg: Can we check for the requiredness of xsd validations using rules engine? or this should be done else where?
    eg:
    If my xml is below, then can I use rules engine to check
    <Firstname>
    <LastName> and
    <Address1>
    for emptyness and pass back saying that the validation failed because <LastName> and <Address1> are empty.
    <Customer>
         <Firstname>aaa<Firstname>
         <LastName> <LastName>
         <Email>ccc<Email>
         <Address>
              <Address1> </Address>
         </Address>
    I have a response xml:
         <ValidationResult>
              <Result>Failed<Result>
              <Message>all required fields are not present<Message>
         <ValidationResult>
    So my rules should be
         check for <Firstname>
              Assert new ValidationResult ('success', ..)
         check for <LastName>
              Assert new ValidationResult ('failed', ..)
         check for <Email>
              Assert new ValidationResult ('success', ..)
         check for <Address1>
              Assert new ValidationResult ('failed', ..)     
    and since last rule is failed, will rules engine send back failed? or what is the strategy for order of rules that get fired?
    For the above scenario what would be the best design solution?

    This is a complicated question but I will try my best to give you the best solution:
    #In answer to your question regarding the order that rules fire unless you use priority you cannot garantee the order that the rules fire. The Oracle rules engine uses the Rete algorithm to establish the order in which to fire the rules and this is generally based upon the data passed into the rules. Therefore if the result of rule 4 may effect rule 1 then the rules engine will run rule 4 before rule 1.
    The scenario you have provided is slightly different however and I woudl suggest the following.
    Instead of passing out a single result from your ruleset pass our an array of results meaning you could effectively run all your rules and pass out all rules that failed. Be wary of checking for nulls however because if nothing is passed into a field then the rules engine will not create that element in the rules fact and the rule will never fire.
    To create a array of results you will need to create a function which creates the result fact for you and then addes each result in turn.
    If you woudl like more information let me know and I will help out as much as I can.

  • To invoke bussiness rules engine from ADF

    hi all,
    To invoke the business rule engine running on the SOA server, from the application module. can you please any one help me in this.

    Murali,
    If the business rules are deployed to the SOA Suite as service-enabled rules, they are just web service calls, correct? You can create a web service proxy class in JDeveloper and then just invoke that class from your AM's java code. There's nothing special with respect to an AM in this case, so if you have detailed questions - probably best to ask in the SOA Suite forum - but no need to complicate the issue by bringing an AM into your question - you just want to invoke a business rule from Java.
    John

  • Business Rules Engines?

    Hi,
    I have experience with embedding "CLIPS" which is a C rules engine as a
    Forte Service Object which was easily wrappered using standard Forte
    wrapper strategy.
    Also, we have a sales rep in ATL who used to work @ ILOG and therefore
    competed with Nueron Data, and from various conversations with mutual Forte
    / Rules Engine customers I've learned it would be a complimentary integration.
    They all have some C-callable API and so a Forte Service Object would be a
    good client to the rules engine api due to our support for multi-threading
    when API is thread safe and additional option of replicating for load-bal
    when API isn't thread safe. The later concept is analogous to our use of
    DBSession object for interface with DBMS client api's.
    Be aware, the experiences I hear about with the mentioned rules engines is
    that there are not always business analysts truly capable of using the
    Rules development interfaces provided by the tools.
    So maybe the use of Forte Conductor's dynamic Process automation
    capabilities may also be a fit. If you want to discuss how, let me know.
    -jim
    Return-Path: <[email protected]>
    X-Sender:
    Date: Fri, 23 Jan 1998 13:19:03 -0800
    To: [email protected]
    From: Vic Brown <[email protected]>
    Subject: Business Rules Engines?
    Sender: [email protected]
    Reply-To: Vic Brown <[email protected]>
    Has anyone on this list integrated a COTS business rules engine,
    or components, into a Forte application? Specific products
    of interest would be those from Neuron Data, ILOG, USoft
    or, possibly, Vision Software.
    If so, comments? Type of application? War stories?
    Thanks.
    Victor Brown
    TRW Data Services
    Oakland, CA
    Phone: 510.645.3240
    FAX: 510.465.4811Jim Rice mailto:[email protected]
    Forte Software, Inc. http://www.forte.com
    South Eastern Tech Sales Mgr.
    301-721-1910 Corp: 510-869-3400 x2316

    The following Business Rule Solution uses POJO's and XML and meets the following criteria!
    Business Rule Solutions should be:
    Non-Industry Specific
    Appropriate and Affordable for any size business
    Enterprise-class solution (scalable, optimized, extensible)
    Remember: All businesses have business rules, and all businesses need an efficient way of managing and executing these business rules.
    What Business Rule Solutions should provide:
    Input Validation & Data Integrity
    Integration & Data Transformation
    Analytics
    Interpret clients Business Policies & Behaviors and clients run-time
    data and execute the appropriate process related workflow efficiently.
    The Return on Investment:
    ROI continues every day, week, month and year into the future!
    Simplify all program development through component reuse.
    Lowers software maintenance by a magnitude.
    Manages & Protects a company assets (Business Rules) in one
    repository.
    Provide Business Agility and Competitive Advantage!
    Further, I believe Business Rule Solutions are a higher level of abstraction of services that all other applications should use to implement the Model-View-Controller design pattern!
    Use the Contact Us! page for quicker responses. http://www.agilebusinessrulecomponents.com

  • Fact not found in the rule engine working memory,rule session executionfail

    Hi
    I'm getting this error on my BRE, the instance Id shows 'faulted' but other consectuctive web services are 'completed' successfully.
    please advise how to fix it.
    Error Message: {http://xmlns.oracle.com/zz_ValidationRules/zz_ValidationRules_DecisionService_1}operationErroredFault
    Fault ID rules:417
    Fault Time Aug 25, 2011 4:59:39 PM
    Non Recoverable Business Fault :
    Fact not found in the rule engine working memory, rule session execution failed. The rule session 130287 failed because an instance of the fact Response could not be found in the working memory of the rule session. This is most likely a rule modeling error. The decision service interaction expects the fact instance to exist in the working memory of the rule session. Check the rule actions in rule designer and make sure that a fact of the expected type is being asserted. If the error persists, contact Oracle Support Services. 130287
    thanks,
    Umesh
    Edited by: user13664410 on Aug 25, 2011 2:19 PM

    When i had this issue i overcame it by opening the Rule Editor->Deleting all existing facts that are imported->Close JDeveloper -> Delete the contents of .rulesdesigner directory in your workspace -> Restart JDeveloper -> Reopen Rule designer and re import all facts.
    Also make sure that all the schemas that are used for Facts are valid ones.

  • Using Rules Engines, & Batch jobs

    So, we're looking into the best method for storing our business rules. So far, we're investigating Rules Engines (Drools), using database Triggers, SOA, or coding those rules into the application itself.
    Currently, the bulk of our business rules are in table triggers. So, when our batch jobs execute, they pick up all of the business rules as they go.
    I like the concept of using a Rules Engine, though, especially if we could give some control over maintaining those rules to the customer.
    So here's my question, if we went to a Rules Engine approach, or chose one of the non-Trigger approaches, would our batch jobs now have to plug into those rules that applied to that particular process? I'm worried about losing those automatic business rule checks when the trigger executes for any interaction with the underlying table data. With a rules engine, it would seem, you'd have more planning b/c the batch job now has to call all rules that may apply.
    Am I missing the point of a Rules Engine, or is this the case?
    --=Chuck

    1) Oracle 10g includes a rules engine, so if you're going do that path, I'd consider strongly keeping everything in Oracle.
    2) What is the nature of the business rules? Are these validations? Calculations? Something else?
    3) Depending on the rules, and whether your batch process has to do anything to react to a rule (i.e. if you have a validation rule that indicates the batch job inserted an invalid entry, does the job need to do something? Or could a subsequent query alert the user to the problem), you can generally have the rules engine run all the rules at the end of the load (that's generally 1 command from the batch process to the rules engine). Or you could have the rules engine run everything periodically. With the internal Oracle rules engine, I believe you can also have things evaluate synchronously.
    Justin

  • Architecture for Rules Engine

    We are reengeneering our existing VB rule engine to Java based. Any input for the architecture is appreciated. Rule engine should fit into distributed arch (including clustering). Here is one suggestion I have.
    1. Stateless -Entity beans. No stateful
    Any other arch suggestion is appreciated.
    Thanks

    The following Business Rule Solution uses POJO's and XML and meets the following criteria!
    Business Rule Solutions should be:
    Non-Industry Specific
    Appropriate and Affordable for any size business
    Enterprise-class solution (scalable, optimized, extensible)
    Remember: All businesses have business rules, and all businesses need an efficient way of managing and executing these business rules.
    What Business Rule Solutions should provide:
    Input Validation & Data Integrity
    Integration & Data Transformation
    Analytics
    Interpret clients Business Policies & Behaviors and clients run-time
    data and execute the appropriate process related workflow efficiently.
    The Return on Investment:
    ROI continues every day, week, month and year into the future!
    Simplify all program development through component reuse.
    Lowers software maintenance by a magnitude.
    Manages & Protects a company assets (Business Rules) in one
    repository.
    Provide Business Agility and Competitive Advantage!
    Further, I believe Business Rule Solutions are a higher level of abstraction of services that all other applications should use to implement the Model-View-Controller design pattern!
    Use the Contact Us! page for quicker responses. http://www.agilebusinessrulecomponents.com

  • Can I run two separate versions of the LabVIEW Run-Time Engine on one PC?

    Hello, I am curious if anyone knew if it is possibly to install and use two separate versions of the LabVIEW Run-Time Engine on one PC?  I currently have the 2009 Run-Time Engine installed on one machine and wanted to install the 2011 Run-Time Engine as well. I know that you can run two separate versions of the LabVIEW program on one machine, but what about the Run-Time Engine?
    Thanks!
    Solved!
    Go to Solution.

    I'm guessing this is a bug that NI needs to fix.  I see no reason you shouldn't be able to install the run-time engine of an older version.  I'd be interesed in if it allows you to install the older development environment, which also includes the older run-time engine.  There are some command line switches for NI installers as mentioned here:
    http://digital.ni.com/public.nsf/allkb/C361087EE9F20810862577850073128E
    I wonder if there is a force install option.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Java.lang.Exception error during XML validation by Integration Engine

    Hi professionals,
    We are trying to use XML validation by the Integration Engine.
    Step 1:
    We created an appropriate directory structure where we had to store the structure (xsd).
    \usr\sap\<system id>\SYS\global\xi\runtime_server\A\B\C\D\E\F
    A - validation
    B - schema
    C - GUID of the SWCV where service interface reside.
    D - Repository Namespace where Service Interface is created.
    E - Service Interface Name
    F - Repository Namespace where Message Type or External Definition is
    assigned.
    Step 2:
    We also changed the references in the xsd to exclude all the subdirectory references.
    e.g folder1/folder2/abc.xsd is become abc.xsd only
    Step 3:
    We stored both xsdu2019s (schema xsd and referenced xsd to the directory created in step 1)
    Step 4:
    We changed the directory and xsdu2019s permissions to 777 (we chose 777 for testing purpose).
    Step 5:
    We changed the property schema validation of the sender agreement to Validation by Integration Engine.
    Step 6:
    We checked RFC destination for AI_VALIDATION_JCOSERVER on AS ABAP and AS Java and establish an successful connection test.
    RESTULTS
    The result of those steps is an error message in the message monitor of PI with the error tekst:
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="XML_VALIDATION_INB">CX_XMS_SYSERR_VALIDATION</SAP:Code>
      <SAP:P1>java.lang.Exception</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>not used at the moment.</SAP:AdditionalText>
      <SAP:Stack>System error occurred during XML validation</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Please assist in how to solve this issueu2026.
    Regards, Sjaak.

    I would suggest follow Appendix A to know the exact path and since you have one XSD referring other XSD check the steps mentioned in Appendix B .... there seems to be some error in referencing ...Appendix A and B are on page 12 & 13 of this document:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d06dff94-9913-2b10-6f82-9717d9f83df1?quicklink=index&overridelayout=true
    Regards,
    Abhishek.

  • Schema Validation using Adapter Engine : Error

    Hello Guys,
    For SOAP message coming into PI, I am doing schema validation by adapter engine but getting below error message
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: Schema Schema1.xsd not found in /usr/sap/PID/<Server>/j2ee/cluster/server1/validation/schema/af7c332075ce11e08e23ddce0a512253/urncompany.comcrmexternald2c/ServiceRequest_Out/urncompany.comcrm~enhancements/Schema1.xsd  (validation/schema)
    *     at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1178)*
    *     at sun.reflect.GeneratedMethodAccessor336.invoke(Unknown Source)*
    *     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)*
    *     at java.lang.reflect.Method.invoke(Method.java:585).........................*
    Here are some details
    -  Using standard SAP Message Type
    - Enhance data type
    - while exporting schema, there are 3 files in zip file
    1) mainschema (renamed it to MessageType name)
    2) Schema1.xsd
    3) Schema2.xsd
    I have followed the step according to below document
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d06dff94-9913-2b10-6f82-9717d9f83df1?QuickLink=index&overridelayout=true
    I have also checked schema1.xsd on PI server and File is there but still getting error.
    Any suggestions ?
    Thanks
    Edited by: chetan patel on Jan 31, 2012 10:50 PM

    Please make sure that main xsd uses import or include tag to reference both schema1.xsd and schema2.xsd. If the main xsd does not do it, Pi cannot verify it. Since you package all the files as zip file, also make sure the path for the secondary files are in proper location.
    In short, the import element allows you to use schema components from any schema; the include element allows you to add all the components of an included schema to the containing schema. If the target namespace is same for both then include tag should be good enough. If you don't find one, you might have to use include tag element in the main or parent xsd file.
    Edited by: Baskar Gopal on Jan 31, 2012 5:18 PM

  • Rules Engine - Updating JavaFact's

    Hi.
    We have started building some rules against a single JavaFact class. Around half way through building the rules we realised that a new 'business function' was required in the JavaFact.
    I can not find any way of updating the JavaFact without actually deleting all rules which depend on the fact. Deleting the rules allows me to delete the fact from the rules engine and then add my updated .jar file / java class as a new JavaFact.
    Is there another way to update the JavaFact to display new functions within the Java class without going through all this destruction!?
    Thanks
    Steve

    More explanation:
    1) If you want to change the name of a property in the Java class, you need to recreate any rules that use it, since it's essentially a different property.
    2) If you want to change the type of a property, you must first remove any references to that property in the rules (but not necesarily the fact type itself), then remove the property entirely from the Java class, reimport the class without the property, then add the property back to the class with the new type, and reimport the class again.
    3) non-property methods (i.e., ones that aren't get and set) can always be reimported regardless of whether or not there is a return type change. However, if the return type is changed, any rule patterns that use this function will be invalid. However, you will not see that they are invalid until you attempt to validate/save a rule again, so be careful about changing type.

  • How to use Hashtable in Rules Engine. And objects within objects in rules

    This is something to do with the JBoss Rules Engine.
    I have an object called 'Employee' containing variables name(string), age(int), sex(string), an object Skill and other fields not relevant.
    Now the Skill object contains name and desc as variables.
    And now i have another seperate object called Test containing two hashtable: inputHT and outputHT.
    i have appropriate data in each of the objects and the hashtable:
    Employee e = new Employee();
    e.setName("Name");
    e.setAge(18);
    e.setSex("f");
    e.getSkill().setSkill("Trainer");
    Hashtable ht = new Hashtable();
    ht.put("age", new Integer(e.getAge());
    ht.put("sex", e.getSex());
    Test t = new Test();
    t.setInputHT(ht);
    Since this is something to do with drools rules: I have the appropriate code even for that.
    Like obtaining the rules defined(.drl files) in a stream, constructing the package builder, rulebase and the working memory.
    I will now explain u my .drl files(ie the rules that i have defined) and the error that i am encountering
    when I have the rule as the following there is no error:
    rule "testRule1"
    when
    e:Employee(age >= 18, sex == "f")
    then
    System.out.println("The lady can marry");
    end
    In the above rule we can see that only two simple variables contained in the employee object is being accessed and there is no error encountered.
    But when I try to access the object "skill" in the employee object, the rule throws me an error when i am constructing the packageBuilder:
    rule "testRule2"
    when
    e:Employee(skill.name == "Trainer")
    then
    System.out.println("The skill is trainer");
    end
    The error thrown is : unexpected token 'skill' and many other dump errors and also error: expected token ')'
    I tried changing the when clause as the following:
    when
    e:Employee(skill.getName() == "Trainer")
    and also
    when
    e:Employee(skill.getName().equals("Trainer"))
    All of them throws the same above error.
    But at the same time if i access only object without its variables, it is working fine. Like:
    rule "testRule2"
    when
    e:Employee(skill == "Trainer")
    then
    System.out.println("The skill is trainer");
    end
    The above rule works properly and does not throw any error. But it is not a valid rule. But syntactically it is correct. and does not throw any error during packageBuilder.
    Similarly, the problem is with the Hashtable
    The below code works fine, but rulewise it is not valid, but syntactically correct. and does not throw any error
    rule "testHT1"
    when
    t:Test(inputHT == "f")
    then
    System.out.println("Print this");
    end
    But the following code throws error, telling unexpected token 'inputHT' :
    rule "testHT1"
    when
    t:Test(inputHT.get("sex") == "f")
    then
    System.out.println("Lady");
    end
    I even changed the when clause, but did not get the appropriate result and it threw me error.
    when
    t:Test(((String)input.get("sex")) == "f")
    and also many other variants but of no use.
    It would be of great help if u or anyone else could reply to this with some solution
    Thank you in advance

    http://forum.java.sun.com/thread.jspa?threadID=774018

  • Oracle Bussiness rules - Can we download and use rule engine independently

    Hello ,
    I have seen and used oracle business rules with SOA and BPM projects , but recently one of the client requested to see if we can download and use oracle rules engine independently .
    Does anyone have any idea if it possible ? Have checked oracle downloads and it says OBR 11g is part of SOA or BPM suite .
    Thanks in advance
    Rupesh

    Thanks for the reply Arun .
    So just to reconfirm if a client wants to use Oracle Business rules they would need to buy license either of SOA suite or BPM suite ?
    Edited by: Rupesh Somani on Jul 15, 2011 1:15 AM

  • Validation business rule

    Hi,
    I am trying to reconcile account 1 with accounts 2 to 8 with a validation business rule. When I define the rule, I have one line with account 1 and account 2 filled and another 6 lines with only account 2 filled. This creates an error on validating the rule.
    How can I create such a validation rule?
    Thanks,
    Arnold

    Instead of using a validation rule I have set this up as an account transformation rule which works just as well and doesn't generate any errors.

  • Business rules engine faults..

    Can someone please advise on what could cause this issue?
    We are using SOA suite 11.1.1.2
    1. The rules engine takes an input as usual but doesn't send any output.
    2. The BPEL process that invokes the rules sends out a bpelFault instead - (because the rules engine doesn't send anything back)
    <bpelFault>
    <faultType>
    <message>0</message>
    </faultType>
    <selectionFailure>
    <part   name="summary" >
    <summary>empty variable/expression result. The XPath variable or expression /ns1:callFunctionStatelessDecision/ns1:resultList/ns2:RulesResponse is empty at line 122. An attempt to read or copy data referenced or computed by the XPath expression either had invalid data, according to the XML schema, or did not contain certain optional data. Ensure that the variable or expression result named in the error message is not empty. Enable XML schema validation of related variables to ensure the run-time data is valid. </summary>
    </part>
    </selectionFailure>
    </bpelFault> 3. At other times, the process works fine for the SAME input

    Hi Paul:
    The short answer is yes.  But its not easy.
    You will have to add some references to your orchestration:
    System.Transactions.DLL, System.Data.DLL, Microsoft.RuleEngine.DLL
    Next the BRE will need a connection string to connect to your database.
    Create a Variable in the orchestration ex:  SQLConn of type  System.Data.SqlClient.SqlConnection
    Create a Variable in the orchestration ex: RulesConn of type Microsoft.RuleEngine.DataConnection
    in an expression shape set the following :
    SQLConn = new System.Data.SqlClient.SqlConnection("Initial Catalog=Customer;Data Source=(local);Integrated Security=SSPI;");
    RulesConn = new Microsoft.RuleEngine.DataConnection ("database", "tablename", SQLConn);
    then call the rules shape.... it should work.
    there is a blog post about this I have used in the past:
    http://blogs.msdn.com/b/rgarg/archive/2009/04/23/using-biztalk-business-rules-engine-bre-with-database.aspx

Maybe you are looking for