Rules Engine Environment in MDM
Hi Everyone,
I am evaluating the capability of SAP MDM to see if there is any kind of rules engine delivered that can create a material master (SKU) number. I am not trying to create material master records yet - just the material number !
Background:
Defned rules, coupled with reference data should be able to generated the list of SKUs.
Example:
Reference Data contained in 3 tables:
Product Line: LN1, LN2
Release: 2009
Language: EN, JA, FR, DE
SKU mask: AA-BB-CC
AA = Product Line
BB = Release
CC = Language
The rules would be to create combinations of all the reference data values and output a list of SKUs according to the SKU mask/format. In other words, by implmenting rules, I should be able to generate 2x1x4 = 8 SKUs in total (2 values for product line, mulitplied by 1 value for Release, multiplied by 4 values for Language).
Questions:
I know I can implment rules on the ABAP workbench in R/3 to create material master numbers, and then later create actual material master records with reference to other materials all within R/3. However, I would like to create and manage the material master directly in MDM.
1) Is a rules engine like drools provided as part of MDM?
2) Since MDM is based on the Netweaver and sits on the web apps server, is there an ABAP workbench provided in MDM from where I can create the rules and create z tables for the reference data.
3) Do I need to create a separate web service in Netweaver Developer Studio to create these rules.
Thanks in advance
-Rajiv
Hi Rajiv,
In some scenarios Material master is imported to SAP MDM from R/3 and all the logic is performed in R/3 itself. For such cases You can use the standrad MDM Material Repository provided by SAP.
<i>How do people create specific part numbers (material numbers / SKUs) in SAP MDM based upon some specific business logic?</i>
Let us say the Part number is an depandant on another field say Product ID.
In MDM Console you can specify the business logic in the Calculation field.
Also i would like to add that in SAP MDM most of this business logic are mere mathematical fuctions (part no = 1.5 * product ID). There is no provision to call external methods (like RFCs in R/3).
I suggest you to get the Standard MDM Materials Repository and play around the Calculated fields\ Auto ID Fields in MDM Console.
Get back for help,
Vijay
Similar Messages
-
Haley Rules Engine - HaleyAuthority with respect to Oracle E Business Suite
I am currently exploring on Haley Rules Engine which is recently aquired by Oracle.
As per my investingation, i came to know that HaleyAuthority ruleEngine is available as plugin from the recent release of Siebel CRM 8.0 installation and onwards.
Here goes my questions
1) is this haleyAuthority rule engine available as third party tool? If so, How to integrate with Oracle E- Business Suite.
2) Like Siebel 8.0, Is this HaleyAuthority plugged in any latest version of our oracle E- Business Suite?
Please let me know your understanding and information on Haley Rules Engine with respect to Oracle E-Business Suite.
Thanks in Advance.Praveen ,
May be late for you (but for others looking similar information)
haleyAuthority is different from Haley Determination Services (now Oracle Policy Automation)
OPA (Haley's Determination Services) are available as Web Service which you can invoke from E-Business Suite or Use Fusion Middleware (SOA Suite / BPEL) as layer between OPA and E-Business Suite
For overview of Haley Office Rules or Oracle Policy Automation check
http://onlineappsdba.com/index.php/2009/04/27/oracle-policy-automation-modeling-earlier-haley-office-rules-determination/ -
Business Rule Error: Fact not found in the rule engine working memory, rule
I am trying to create a simple decision table with an input(ValidateInput) and a output(ValidateOutput). The input and output schemas have unbounded and nested elements(Parent-child relationship). When I create a condition(specific condition on input) and in the action I am asserting the output object. But when I run using EM it throws the following exception. It would be helpful if somebody could tell me what could be the problem. Please note when I set the output as ValidateInput object then it runs fine. Also it executes fine with ValidateOutput if it doesn't have unbounded(List) element inside it.
Error Message: {http://xmlns.oracle.com/OracleRules10/OracleRules10_DecisionService_1}operationErroredFault
Fault ID rules:211
Fault Time Jun 18, 2011 10:45:13 AM
Non Recoverable Business Fault :
Fact not found in the rule engine working memory, rule session execution failed. The rule session 270013 failed because an instance of the fact com.example.customer.ValidateResponse 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. 270013
Edited by: reachsky on 18 Jun, 2011 9:57 AMIt's working now..I had to use Global variable to declare child element of the output variable and use the same during action.
-
Error when invoking Rule Engine using Java API
Hi,
I have implemented a Java class which calls the Rule Engine to execute the rules. If I test by setting the value of the input inside a main method and get the output, it is working fine. The ruleset is also invoked and there is no problem. However, when I expose this java class as a web service and invoke the web service, I get the below error. I dont get the error if the .rules file is not present in the loaction mentioned. I get the error when the .rules file is present in the location. Not sure if this is an issue with the java call outs or loading the dictionary.
Error:_
<faultcode>S:Server</faultcode>
<faultstring>oracle/rules/sdk2/exception/SDKException</faultstring>
<ns2:exception xmlns:ns2="http://jax-ws.dev.java.net/" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" class="java.lang.NoClassDefFoundError">
<message>oracle/rules/sdk2/exception/SDKException</message>
<ns2:stackTrace>
<ns2:frame line="38" file="ImplementRules.java" method="Query" class="oracle.rules.querystudentcriteria.ImplementRules"/>
<ns2:frame line="native" file="NativeMethodAccessorImpl.java" method="invoke0" class="sun.reflect.NativeMethodAccessorImpl"/>
<ns2:frame line="39" file="NativeMethodAccessorImpl.java" method="invoke" class="sun.reflect.NativeMethodAccessorImpl"/>
<ns2:frame line="25" file="DelegatingMethodAccessorImpl.java" method="invoke" class="sun.reflect.DelegatingMethodAccessorImpl"/>
<ns2:frame line="597" file="Method.java" method="invoke" class="java.lang.reflect.Method"/>
<ns2:frame line="101" file="WLSInstanceResolver.java" method="invoke" class="weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker"/>
<ns2:frame line="83" file="WLSInstanceResolver.java" method="invoke" class="weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker"/>
<ns2:frame line="152" file="InvokerTube.java" method="invoke" class="com.sun.xml.ws.server.InvokerTube$2"/>
<ns2:frame line="264" file="EndpointMethodHandler.java" method="invoke" class="com.sun.xml.ws.server.sei.EndpointMethodHandler"/>
<ns2:frame line="93" file="SEIInvokerTube.java" method="processRequest" class="com.sun.xml.ws.server.sei.SEIInvokerTube"/>
<ns2:frame line="604" file="Fiber.java" method="__doRun" class="com.sun.xml.ws.api.pipe.Fiber"/>
<ns2:frame line="563" file="Fiber.java" method="_doRun" class="com.sun.xml.ws.api.pipe.Fiber"/>
<ns2:frame line="548" file="Fiber.java" method="doRun" class="com.sun.xml.ws.api.pipe.Fiber"/>
<ns2:frame line="445" file="Fiber.java" method="runSync" class="com.sun.xml.ws.api.pipe.Fiber"/>
<ns2:frame line="275" file="WSEndpointImpl.java" method="process" class="com.sun.xml.ws.server.WSEndpointImpl$2"/>
<ns2:frame line="454" file="HttpAdapter.java" method="handle" class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit"/>
<ns2:frame line="250" file="HttpAdapter.java" method="handle" class="com.sun.xml.ws.transport.http.HttpAdapter"/>
<ns2:frame line="140" file="ServletAdapter.java" method="handle" class="com.sun.xml.ws.transport.http.servlet.ServletAdapter"/>
<ns2:frame line="319" file="HttpServletAdapter.java" method="run" class="weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke"/>
<ns2:frame line="232" file="HttpServletAdapter.java" method="post" class="weblogic.wsee.jaxws.HttpServletAdapter"/>
<ns2:frame line="310" file="JAXWSServlet.java" method="doPost" class="weblogic.wsee.jaxws.JAXWSServlet"/>
<ns2:frame line="727" file="HttpServlet.java" method="service" class="javax.servlet.http.HttpServlet"/>
<ns2:frame line="87" file="JAXWSServlet.java" method="service" class="weblogic.wsee.jaxws.JAXWSServlet"/>
<ns2:frame line="820" file="HttpServlet.java" method="service" class="javax.servlet.http.HttpServlet"/>
<ns2:frame line="227" file="StubSecurityHelper.java" method="run" class="weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction"/>
<ns2:frame line="125" file="StubSecurityHelper.java" method="invokeServlet" class="weblogic.servlet.internal.StubSecurityHelper"/>
<ns2:frame line="292" file="ServletStubImpl.java" method="execute" class="weblogic.servlet.internal.ServletStubImpl"/>
<ns2:frame line="26" file="TailFilter.java" method="doFilter" class="weblogic.servlet.internal.TailFilter"/>
<ns2:frame line="56" file="FilterChainImpl.java" method="doFilter" class="weblogic.servlet.internal.FilterChainImpl"/>
<ns2:frame line="326" file="DMSServletFilter.java" method="doFilter" class="oracle.dms.wls.DMSServletFilter"/>
<ns2:frame line="56" file="FilterChainImpl.java" method="doFilter" class="weblogic.servlet.internal.FilterChainImpl"/>
<ns2:frame line="3592" file="WebAppServletContext.java" method="run" class="weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction"/>
<ns2:frame line="321" file="AuthenticatedSubject.java" method="doAs" class="weblogic.security.acl.internal.AuthenticatedSubject"/>
<ns2:frame line="121" file="SecurityManager.java" method="runAs" class="weblogic.security.service.SecurityManager"/>
<ns2:frame line="2202" file="WebAppServletContext.java" method="securedExecute" class="weblogic.servlet.internal.WebAppServletContext"/>
<ns2:frame line="2108" file="WebAppServletContext.java" method="execute" class="weblogic.servlet.internal.WebAppServletContext"/>
<ns2:frame line="1432" file="ServletRequestImpl.java" method="run" class="weblogic.servlet.internal.ServletRequestImpl"/>
<ns2:frame line="201" file="ExecuteThread.java" method="execute" class="weblogic.work.ExecuteThread"/>
<ns2:frame line="173" file="ExecuteThread.java" method="run" class="weblogic.work.ExecuteThread"/>
</ns2:stackTrace>
The Java class looks like:
public PersonType Query (PersonType p)
try {
//FileReader reader = new FileReader("/home/orasoa/223345/STRS1.rules");
//FileReader reader = new FileReader("D:\\Arun\\NGCE_WS\\POC1\\UHG\\QueryStudentCriteria\\oracle\\rules\\querystudentcriteria\\STRS1.rules");
InputStream stream=ImplementRules.class.getResourceAsStream("/STRS1.rules");
Reader reader=new InputStreamReader(stream);
RuleDictionary dict = RuleDictionary.readDictionary(reader, new DecisionPointDictionaryFinder(null));
List<SDKWarning> warnings = new ArrayList<SDKWarning>();
dict.update(warnings);
DecisionPoint decisionPoint = new DecisionPointBuilder().with("STRS1_DecisionService_1").with(dict).build();
DecisionPointInstance point = decisionPoint.getInstance();
ArrayList input=new ArrayList();
input.add(p);
point.setInputs(input);
List<Object> output=point.invoke();
catch (Exception e) {}
return p;
Cheers,
- ARHi, I am getting a similar error when I deploy my application on the weblogic server.
Could you detail how this was resolved?
Thanks,
SB -
Rules Engine using Web Dynpro ABAP
Hi,
Can we build a Rules Engine which works with Web Dynpro-ABAP? Something similar to BRM in CE-7.2.
Thanks,
PrasannaDo you mean BRM or BRF. BRF is the name of the business rules framework that is integrated in the ABAP engine. BRM is Business Rules Management and a part of NetWeaver CE - running on the Java Stack and a part of SAP NetWeaver BPM (Business Process Management).
Generally if your work is all ABAP based you would use BRF. Here is a small eLearning that shows the usage of BRF within Web Dynpro ABAP.
http://www.sdn.sap.com/irj/scn/elearn?rid=/library/uuid/c0181bb1-28e7-2c10-538c-a093c616310e -
Integration between Oracle BPM and RTD(rule engine)
Hi,
I have Oracle BPM - 10.3.2.0.0 Build 100141
Oracle RTD(rules engine) - 3.0.0.1
Please let me know whether the versions of RTD and Oracle BPM mentioned above can be integrated with each other.
How the interaction between Oracle BPM enterprise and RTD will take place and how the data flow takes place between them.
Thanks in advanceCheck this, u can get some info
Re: What is a recommended approach to integrate Oracle BPM 10R3 and Oracle UCM -
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
SteveMore 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 advancehttp://forum.java.sun.com/thread.jspa?threadID=774018
-
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 x2316The 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 -
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
RupeshThanks 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 -
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 inputHi 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 -
[Business Rules] Rules engine not updating my Fact Result as expected.
I have a Fact type implemented as a Java class, named Commission with the following properties: age(int), area(int), amt(double):
In the Java application I set the age to 30 and area to 3:
Commission comm = new Commission();
comm.setAge(30);
comm.setArea(3)Now I have a set of rules defined in the ruleAuthor where in, if the age is > 20 and area is between 1 and 5 then the business rule engine should set the Amt field to .3
But when I run the rules engine:
ruleSession.executeRuleset(...);
ruleSession.callFunctionWithArgument("assert", comm);
ruleSession.callFunction("run");
double commamt = comm.getAmt(); //this value returns (0) as if the rules engine did not fire the rule and did not change the amt field to .3When i get the comm.getAmt(), the value is zero and not 0.3 which is the expected result.
I wonder what's wrong, I only followed and patterned the instructions and code that came with Oracle Business Rules CarRental Example and/or the example that came in the Business Rule ViewLet.Hi Phil,
I tried your suggestion. But it still does not work.
I don't if this would help but this is how I defined my rules:
1. I created a Java class file as a Fact Definition. Compiled it and stored it into a jar file.
2. Copied the .jar file to a remote machine where OracleAS is installed.
3. I run the ruleAuthor (browser) and specified a ruleRepository file.
4. Specified the jar file where the Fact Definition (Java file) is.
5. Created Ruleset and Rules
6. Save the Dictionary.
7. Copied the generated rulesRepository on to my local hard drive (remote).
8. Create and Run the Rule-Enabled Java application. ruleRepository points to the ruleRepository file generated by ruleAuthor and copied to my local hard drive.
Maybe there is something wrong with how I packaged the Java Fact Definition? -
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 PMWhen 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. -
Fact Not Found in Rule engine working memory
I am using 11g, I have built a Business Rule, using RL facts, XML facts, Bucketsets and multiple Rulesets which internally has decision table and If-then rules. After deploying the same, Business rules runs successfully for some conditions and faults for some condition. The fault error for those failed conditions displays the following error:
Fact not found in the rule engine working memory, rule session execution failed. The rule session bpel:<somenumber> failed because an instance of the fact <factname> 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. Contact oracle support if error is not fixable.
It is wierd becuase if it is a fault with respect to working memory then I would imagine it has to fail for all the conditions as all the conditions assert the same Object. Has anyone faced the same issue or am I doing something wrong here.
VenkatErvan
I deleted the RL facts that I had created and asserted the result to the Business Object, this seems to have taken care of this issue, but I am still not sure what was wrong in the way I build the rules using RL.Hope this helps.
Venkat -
I have a system dealing with different work flow engines at the same time. It gets data from a whole list of different applications, Once it recieves this information, it processes it based on a Business Rules Engine. The rules for the Busines Rules Engine are defined in a definition filw which is huge and deals with info as to how to handle a particular piece of data under a certain situation. Would you send it to System A, B or X based on some information and what kind of operation needs to be carried out.
Now this seems to be a decoupled system since theis system acts like an Enterprise bus or a hub and is decoupled from the rest of the systems. Its technological dependencies on the rest are minimal. But the problem as in any mediator based pattern is that if the definition file is messed up, the rules def file, all the systems getting info from the hub would be messed up.
Could someone advise how to avoid this dependency, which is more of a business rules dependency than technological."messed up" as in one or more bits flipped? or as in those rules are
incorrect? Flipped bits can quite adequately be detected by some form
of CRC. Incorrect rules are much more difficult to detect.
kind regards,
Jos
Maybe you are looking for
-
I-Trigue L3800 2.1 settings
Hi there - Newbie needing help I've bought the above speakers and they only play out of one speaker. I've unloaded the drivers and reloaded via the web for the most uptodate. However, when i go into control panel / sounds / highlight speakers then co
-
Very urgent - Regarding variables on Multicube.
Hi Experts I created a multicube using two basic cubes(one for R/3 data and another one for CRM Data). In my reports i want to put 2 variables for CRM(Debit memo date) and R/3 (Billing Date). when i execute the report without entering any values for
-
How to set master cost center to required input in the maintaining position
Dear experts, I have two questions in the HCM module,could you please tell me? Issue 1: How to set the column of master cost center to required input in the maintaining position screen? Issue 2: some of position has two cost center, i have m
-
Wily Introscope as monitoring tool?
Hello everybody, we are looking for a tool capable of monitoring Systems with usage type "java", e.g. Enterprise Portal oder Process Integration. Has anybody experience with Wily Introscope, e.g. concerning usability? Whatever experience Thanks a lot
-
Last update of 8900 software version 5 - lost SMS items
After the last update, I noticed that a lot of SMS items that I had been keeping deliberately were lost and only the latest ones remained. I have two questions: 1- Is there a way I can retrieve them? 2- Why the people who designed the update take the