[rules-users] Options for rule versioning

Rob Fisher rob.fisher.l2gk at statefarm.com
Wed Aug 24 15:42:01 EDT 2011


Looking for best practice recommendations around the versioning of a rule.  Our application will have 50-60 rule sets comprised of up to 70 rules each.  The activation of many of the rules will be based on a processing date (inserted fact attribute).  The application processing date can be prior, equal, or after the system date.


For example, 2 rules, with slightly different logic

Eligibility rule version 1
//to be potentially activated  for application processing time period prior to 2011
When
     Car(color = "blue")
Then
Terms(eligible = "yes")

Eligibility rule version 2
//to be potentially activated  for application processing time period 2011 and forward
When
   Car(color = "blue", type="coupe")
Then
  Terms(eligible = "yes")

We've come up with a couple of different ways to handle this:
1.      Add Date logic to LHS of the rule . i.e  add "Control(processingDate < '01/01/2011')" to 1st rule and  "Control(processingDate >= '01/01/2011')" to 2nd rule.   First rule would activate with processing date = 12/31/2010 and 2nd rule would activate with processing date = 07/31/2011.  When originally authored, first rule would be written without date logic.  When 2nd rule is authored, data logic will need to get added to both.
2.      We explored a way of setting the session clock to the processing date and using the 'date-effective' and 'date-expires' attributes to do the filtering.  i.e. 1st rule is effective until 12/31/2010 and 2nd rule is effective from 01/01/2011 to 12/31/9999.  However, we could only figure out how to do this with a stateful knowledge session.  Is it possible in a Stateless?
3.      We added metadata to the rules (@EffectiveDate and @ExpirationDate), and using agendafilter, we compared processing date to the metadata and return true or false dependent on comparison.

What are your opinions on these three methods?  What are other options?

Thanks
Rob



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110824/f3d52bb1/attachment.html 


More information about the rules-users mailing list