"Learning the reason for failure to match" is the title of a section in my boot camp you missed at this year's IntelliFest a couple of weeks ago.
You are getting close to the solution, but here's the outline of the rule programming design pattern: Write one rule (high salience) to create an auxiliary fact (Aux), containing a reference to the fact under investigation (Crf) and a Set. Write one rule each, combining Aux and Crf, restricting the latter with one of the required property values/range. On the RHS, add an identification to the set component of Aux. DO NOT MODIFY/UPDATE. Write another rule (low salience) combining Aux and Crf and see what Aux contains in the Set. Retract Aux. -W On 05/11/2012, Cotton, Ben <[email protected]> wrote: > Could a solution be as simple as this? Is this approach to consuming > "LCHUS_IRS_CURRENCY_RULE" L-value matching events sound/complete (and > not-vulnerable to any race condition?). Is there any DROOLS EventListener > callback API that would be more appropriate to solve the problem? > > E.g. I want to be able to log when each of these 5 L-value predicates > either "MATCHES" or "FAILS TO MATCH" (at the time of the event) > > rule "LCHUS_IRS_CURRENCY_RULE" //XLS Item=195 > when > IRDCurrencyRuleFact( > productType == "IRS", > currency=="GBP", > upfrontFeePaymentDate < IRDCurrencyRuleFact.terminationDate, > maturity <= 18275, > //unit = days, i.e. 50 Years > notional <= 99,999,999,999.99 > //max Notional > ) > then > System.out.println("LCHUS"); > end > > > Again the objective is to be able to join a high-resolution logging > capability wrt to which of the specific 5 L-value predicates matched. > Instinctively, to this DROOLs newbie, this approach seems workable but not > ideal .... > > rule "LCHUS_IRS_CURRENCY_RULE_LVALUE_MATCHING_EVENT_1" > when > IRDCurrencyRuleFact(productType == "IRS") > then > System.out.println("LCHUS_IRS_CURRENCY_RULE_L-value event 1 > match"); //log event L-value predicate 1 matched > end > > rule "LCHUS_IRS_CURRENCY_RULE_LVALUE_MATCHING_EVENT_2" > when > IRDCurrencyRuleFact(currency=="GBP") > then > System.out.println("LCHUS_IRS_CURRENCY_RULE_L-value event 2 > match"); //log event L-value predicate 2 matched > end > > rule "LCHUS_IRS_CURRENCY_RULE_LVALUE_MATCHING_EVENT_3" > when > IRDCurrencyRuleFact(upfrontFeePaymentDate < > IRDCurrencyRuleFact.terminationDate) > then > System.out.println("LCHUS_IRS_CURRENCY_RULE_L-value event 3 > match"); //log event L-value predicate 3 matched > end > > rule "LCHUS_IRS_CURRENCY_RULE_LVALUE_MATCHING_EVENT_4" > when > IRDCurrencyRuleFact(maturity <= 18275) > then > System.out.println("LCHUS_IRS_CURRENCY_RULE_L-value event 4 > match"); //log event L-value predicate 4 matched > end > > rule "LCHUS_IRS_CURRENCY_RULE_LVALUE_MATCHING_EVENT_5" > when > IRDCurrencyRuleFact(notional <= 99,999,999,999.99) > then > System.out.println("LCHUS_IRS_CURRENCY_RULE_L-value event 5 > match"); //log event L-value predicate 5 matched > end > > > > > > Ben D Cotton III > Morgan Stanley & Co. > OTC Derivatives Clearing Technology > 1221 AOTA Rockefeller Ctr - Flr 27 > New York, NY 10020 > (212)762.9094 > [email protected]<mailto:[email protected]> > > > > > From: [email protected] > [mailto:[email protected]] On Behalf Of Cotton, Ben > (ISGT) > Sent: Saturday, November 03, 2012 8:24 AM > To: [email protected] > Cc: O'Brien, Patrick (ISGT) > Subject: [rules-users] DROOLs callback API for L-value predicate matching > events > > Hi, Can someone please point me to compelling examples/sample code of how > to use a DROOLs callback API for very high-resolution logging of L-value > predicate matching events? > > E.g. I want to be able to log when each of these 5 L-value predicates > either "MATCHES" or "FAILS TO MATCH" (at the time of the event) > > rule "LCHUS_IRS_CURRENCY_RULE" //XLS Item=195 > when > IRDCurrencyRuleFact( > productType == "IRS", > currency=="GBP", > upfrontFeePaymentDate < IRDCurrencyRuleFact.terminationDate, > maturity <= 18275, > //unit = days, i.e. 50 Years > notional <= 99,999,999,999.99 > //max Notional > ) > then > System.out.println("LCHUS"); > end > > > Ben D Cotton III > Morgan Stanley & Co. > OTC Derivatives Clearing Technology > 1221 AOTA Rockefeller Ctr - Flr 27 > New York, NY 10020 > (212)762.9094 > [email protected]<mailto:[email protected]> > > > > ________________________________ > > NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions > or views contained herein are not intended to be, and do not constitute, > advice within the meaning of Section 975 of the Dodd-Frank Wall Street > Reform and Consumer Protection Act. If you have received this communication > in error, please destroy all electronic and paper copies and notify the > sender immediately. Mistransmission is not intended to waive confidentiality > or privilege. Morgan Stanley reserves the right, to the extent permitted > under applicable law, to monitor electronic communications. This message is > subject to terms available at the following link: > http://www.morganstanley.com/disclaimers If you cannot access these links, > please notify us by reply message and we will send the contents to you. By > messaging with Morgan Stanley you consent to the foregoing. > > > ________________________________ > > NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions > or views contained herein are not intended to be, and do not constitute, > advice within the meaning of Section 975 of the Dodd-Frank Wall Street > Reform and Consumer Protection Act. If you have received this communication > in error, please destroy all electronic and paper copies and notify the > sender immediately. Mistransmission is not intended to waive confidentiality > or privilege. Morgan Stanley reserves the right, to the extent permitted > under applicable law, to monitor electronic communications. This message is > subject to terms available at the following link: > http://www.morganstanley.com/disclaimers If you cannot access these links, > please notify us by reply message and we will send the contents to you. By > messaging with Morgan Stanley you consent to the foregoing. > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
