<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div>Looking for best practice recommendations around the versioning of a rule.&nbsp; Our application will have 50-60 rule sets comprised of up to 70 rules each.&nbsp; The activation of many of the rules will be based on a processing date (inserted fact attribute).&nbsp;
The application processing date can be prior, equal, or after the system date.</div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div>&nbsp;</div>
<div>For example, 2 rules, with slightly different logic</div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div>Eligibility rule version 1</div>
<div>//to be potentially activated&nbsp; for application processing time period prior to 2011</div>
<div>When</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp; Car(color = &#8220;blue&#8221;)</div>
<div>Then</div>
<div style="text-indent:9pt;">Terms(eligible = &#8220;yes&#8221;)</div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div>Eligibility rule version 2</div>
<div>//to be potentially activated  for application processing time period 2011 and forward</div>
<div>When</div>
<div>&nbsp;&nbsp; Car(color = &#8220;blue&#8221;, type=&#8221;coupe&#8221;)</div>
<div>Then</div>
<div>&nbsp; Terms(eligible = &#8220;yes&#8221;)</div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div>We&#8217;ve come up with a couple of different ways to handle this:</div>
<ol style="margin:0;padding-left:36pt;">
<li>Add Date logic to LHS of the rule . i.e  add &#8220;Control(processingDate &lt; &#8216;01/01/2011&#8217;)&#8221; to 1st rule and&nbsp; &#8220;Control(processingDate &gt;= &#8216;01/01/2011&#8217;)&#8221; to 2<font size="1"><span style="font-size:7.3pt;"><sup>nd</sup></span></font> rule.   First rule would activate
with processing date = 12/31/2010 and 2<font size="1"><span style="font-size:7.3pt;"><sup>nd</sup></span></font> rule would activate with processing date = 07/31/2011.&nbsp; When originally authored, first rule would be written without date logic.&nbsp; When 2<font size="1"><span style="font-size:7.3pt;"><sup>nd</sup></span></font>
rule is authored, data logic will need to get added to both. </li><li>We explored a way of setting the session clock to the processing date and using the &#8216;date-effective&#8217; and &#8216;date-expires&#8217; attributes to do the filtering.&nbsp; i.e. 1<font size="1"><span style="font-size:7.3pt;"><sup>st</sup></span></font> rule is effective until
12/31/2010 and 2<font size="1"><span style="font-size:7.3pt;"><sup>nd</sup></span></font> rule is effective from 01/01/2011 to 12/31/9999.&nbsp; However, we could only figure out how to do this with a stateful knowledge session.&nbsp; Is it possible in a Stateless?</li><li>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.</li></ol>
<div style="text-indent:9pt;"><font face="Times New Roman">&nbsp;</font></div>
<div>What are your opinions on these three methods?&nbsp; What are other options?</div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div>Thanks </div>
<div><font size="3"><span style="font-size:12pt;">Rob</span></font></div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div><font face="Times New Roman">&nbsp;</font></div>
<div><font face="Times New Roman">&nbsp;</font></div>
</span></font>
</body>
</html>