[rules-users] Smart Templates

FrankVhh frank.vanhoenshoven at agserv.eu
Wed Jun 1 11:26:32 EDT 2011


Load the data from a DB and instantiate Java objects with that. Then generate
the rule set using a template.
=> OK, in this case, I would call the function getType() during the
instantiation of the java objects.

On the manageability topic: I have no knowledge of your data model, but I
can indeed imagine cases where a decision table would be less manageable
than a database.

Regards,
Frank


ChrisMu wrote:
> 
> Ideally:
> Load the data from a DB and instantiate Java objects with that. Then
> generate the rule set using a template.
>  
> The DB data would provide the list of permitted values per field. 
> The rule results are generated based on the inputs.
>  
> This avoids users having to enter one rule for every single currency and
> commodity type (using the example below) when there are only 2 underlying
> 'rules'.
> If another currency is then added to the data in the DB, the new rule will
> be automatically generated.
> 
> ________________________________
> 
> From: FrankVhh [via Drools]
> [mailto:ml-node+3011148-1318721408-404175 at n3.nabble.com] 
> Sent: 01 June 2011 15:57
> To: Mullard, Christopher
> Subject: RE: [rules-users] Smart Templates
> 
> 
> Hi, 
> 
> Basically, you have 2 options. 
> 
> 1) You call the function getType() from your .drl file. The function will
> be executed at runtime. 
> 
> header 
> name 
> value 
> 
> TEMPLATE 
> WHEN 
> blabla 
> THEN 
> $type.setName($service.getType("@{value}")); 
> 
> 2) Execute the function before you compile your rules with Rule Templates.
> I.e. make sure your objects have an attribute whose value will be set by
> getType() and use this value in the Template. 
> 
> header 
> name 
> value 
> type 
> 
> TEMPLATE 
> WHEN 
> blabla 
> THEN 
> $type.setName("@{type}"); 
> 
> Hope this helps. 
> 
> Btw, am I understanding it correctly that you do not want to use a
> Decision Table because you are worried about manageability of your
> ruleset? And, in stead, you want to create rules directly from Java
> objects, using templates. If this is correct, could you tell me how you
> are going to manage these objects? 
> 
> Regards, 
> Frank 
> 
> 
> 
> 
> 	ChrisMu wrote:
> 	Sorry - you're losing me - could you give an example please? 
> 	
> 	Thanks 
> 	
> 	________________________________ 
> 	
> 	From: Wolfgang Laun-2 [via Drools] [mailto:[hidden email]] 
> 	Sent: 01 June 2011 15:25 
> 	To: Mullard, Christopher 
> 	Subject: Re: [rules-users] Smart Templates 
> 	
> 	
> 	It's just like a Java static method. Call JAva code if you don't want to
> put it all into DRL function, or import from Java in the first place. Both
> "import" and "function" can be used in spreadsheets. 
> 	-W 
> 	
> 	
> 	
> 	2011/6/1 ChrisMu <[hidden email]> 
> 	
> 	
> 	        Agreed, but this was just an example - if the function required
> something more complicated - say a DB lookup, could it be done? 
> 	
> 	________________________________ 
> 	
> 	        From: Wolfgang Laun-2 [via Drools] [mailto:[hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010490&amp;i=0&gt; ] 
> 	        Sent: 01 June 2011 12:40 
> 	        To: Mullard, Christopher 
> 	        Subject: Re: [rules-users] Smart Templates 
> 	        
> 	        
> 	        If there are just 2 types (IRDELTA, COMLEASEDELTA) you can add a
> function that computes this from the 3-letter name. 
> 	        -W 
> 	        
> 	        
> 	        
> 	        2011/6/1 ChrisMu <[hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010275&amp;i=0&gt; > 
> 	        
> 	
> 	                Possibly. Let me try again with what I'm trying to
> achieve. 
> 	                Given this excerpt from a decision table: 
> 	                  
> 	                
> 	                  
> 	                Basically I want to be able to specify a template that
> says 'If Arg0 is a currency, output RiskType IRDELTA (and currency), if
> Arg0 is a commodity (begins with 'X') then output RiskType COMLEASEDELTA
> (and commodity). 
> 	                  
> 	                When fed with data, this would generate the rules: 
> 	                  
> 	                when Arg0 = USD, output RiskType IRDELTA, USD 
> 	                when Arg0 = GBP, output RiskType IRDELTA, GBP 
> 	                etc 
> 	                when Arg0 = XAU, output RiskType COMLEASEDELTA, XAU 
> 	                etc 
> 	                  
> 	                In this way theRiskType name is inferred from the data
> when the rules are generated. It can be done by explicitly stating all
> possible combinations as in the decision table above but that gets tedious
> quickly. I wanted to have a more general template that could generate all
> the specific rules instances. 
> 	                  
> 	                Does that make more sense? 
> 	                  
> 	                Thanks 
> 	                Chris 
> 	                  
> 	
> 	________________________________ 
> 	
> 	                From: Wolfgang Laun-2 [via Drools] [mailto:[hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010119&amp;i=0&gt; ] 
> 	                Sent: 01 June 2011 11:21 
> 	                To: Mullard, Christopher 
> 	                Subject: Re: [rules-users] Smart Templates 
> 	                
> 	                
> 	                I don't want to confuse you, but have you considered not
> using templates at all? If you can generate N rules from N objects
> containing different literals for matching a fact or for updating a fact
> field, then you can achieve the same thing with a single rule and
> additional facts containing those literal values. 
> 	                
> 	                rule "one 4 all" 
> 	                when 
> 	                Â Â  Service( $name: name, $value: value ) 
> 	                Â Â  $sb: ServiceBean( name == $name, value == $value ) 
> 	                then 
> 	                Â Â  # RiskType ... is what? 
> 	                Â Â  ...$value..., ...$sb.getType()... 
> 	                end 
> 	                
> 	                -W 
> 	                
> 	                
> 	                _______________________________________________ 
> 	                rules-users mailing list 
> 	                [hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010097&amp;i=0&gt;  
> 	                https://lists.jboss.org/mailman/listinfo/rules-users
> 	                
> 	                
> 	                
> 	________________________________ 
> 	
> 	                If you reply to this email, your message will be added to
> the discussion below: 
> 	               
> http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3010097.html  
> 	                To unsubscribe from Smart Templates, click here. 
> 	
> 	
> 	               
> ============================================================================== 
> 	                Please access the attached hyperlink for an important
> electronic communications disclaimer: 
> 	               
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> 	               
> ============================================================================== 
> 	
> 	
> 	
> 	________________________________ 
> 	
> 	                View this message in context: RE: [rules-users] Smart
> Templates
> &lt;http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3010119.html&gt;  
> 	                Sent from the Drools: User forum mailing list archive
> &lt;http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html&gt; 
> at Nabble.com. 
> 	                
> 	                _______________________________________________ 
> 	                rules-users mailing list 
> 	                [hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010275&amp;i=1&gt;  
> 	                https://lists.jboss.org/mailman/listinfo/rules-users
> 	                
> 	                
> 	
> 	
> 	
> 	        _______________________________________________ 
> 	        rules-users mailing list 
> 	        [hidden email]
> &lt;http://user/SendEmail.jtp?type=node&amp;node=3010275&amp;i=2&gt;  
> 	        https://lists.jboss.org/mailman/listinfo/rules-users
> 	        
> 	        
> 	        
> 	________________________________ 
> 	
> 	        If you reply to this email, your message will be added to the
> discussion below: 
> 	       
> http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3010275.html  
> 	        To unsubscribe from Smart Templates, click here. 
> 	
> 	
> 	       
> ============================================================================== 
> 	        Please access the attached hyperlink for an important electronic
> communications disclaimer: 
> 	        http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> 	       
> ============================================================================== 
> 	
> 	
> 	
> 	________________________________ 
> 	
> 	        View this message in context: RE: [rules-users] Smart Templates
> &lt;http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3010490.html&gt;  
> 	        Sent from the Drools: User forum mailing list archive
> &lt;http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html&gt; 
> at Nabble.com. 
> 	        
> 	        _______________________________________________ 
> 	        rules-users mailing list 
> 	        [hidden email] 
> 	        https://lists.jboss.org/mailman/listinfo/rules-users
> 	        
> 	        
> 	
> 	
> 	
> 	_______________________________________________ 
> 	rules-users mailing list 
> 	[hidden email] 
> 	https://lists.jboss.org/mailman/listinfo/rules-users
> 	
> 	
> 	
> 	________________________________ 
> 	
> 	If you reply to this email, your message will be added to the discussion
> below: 
> 	http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3010989.html  
> 	To unsubscribe from Smart Templates, click here
> &lt;http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&amp;node=3006479&amp;code=Y2hyaXN0b3BoZXIubXVsbGFyZEBjcmVkaXQtc3Vpc3NlLmNvbXwzMDA2NDc5fDE5NzczMDY1MzE=&gt;
> . 
> 	
> 
> =============================================================================== 
> 	Please access the attached hyperlink for an important electronic
> communications disclaimer: 
> 	http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html  
> 
> =============================================================================== 
> 
> 
> 
> ________________________________
> 
> If you reply to this email, your message will be added to the discussion
> below:
> http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3011148.html 
> To unsubscribe from Smart Templates, click here
> &lt;http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&amp;node=3006479&amp;code=Y2hyaXN0b3BoZXIubXVsbGFyZEBjcmVkaXQtc3Vpc3NlLmNvbXwzMDA2NDc5fDE5NzczMDY1MzE=&gt;
> . 
> 
> =============================================================================== 
> Please access the attached hyperlink for an important electronic
> communications disclaimer: 
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
> ===============================================================================
> 


--
View this message in context: http://drools.46999.n3.nabble.com/Smart-Templates-tp3006479p3011313.html
Sent from the Drools: User forum mailing list archive at Nabble.com.




More information about the rules-users mailing list