<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:tahoma,new york,times,serif;font-size:10pt"><div>Wolfgang makes a good point. However, given the requirement that the value changes and is not truly static, I would recommend something like the following which, if your SearchParm loads the data from a persisted source you could change it's value without any code change.<br><br>Earnie!<br><br>package com.sample<br><br>rule "Test Rule"<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SearchParam($searchName : searchName)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $person : Person(name == $searchName)<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(drools.getRule().getName() + " [" + $searchName + "] [" + $person.getName() + "]");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 $person.setActivation(true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>end<br><br>package com.sample;<br><br>public class Person {<br>&nbsp;&nbsp;&nbsp; private String name;<br>&nbsp;&nbsp;&nbsp; private Boolean activation;<br><br>&nbsp;&nbsp;&nbsp; public Person(String name, Boolean activation) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.name = name;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.activation = activation;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public String getName() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return name;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setName(String name) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.name = name;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public Boolean getActivation() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return activation;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setActivation(Boolean activation) {<br>&nbsp;&nbsp;&nbsp;
 &nbsp;&nbsp;&nbsp; this.activation = activation;<br>&nbsp;&nbsp;&nbsp; }<br><br>}<br>package com.sample;<br><br>public class SearchParam {<br>private String searchName;<br><br>public SearchParam(String searchName) {<br>&nbsp;&nbsp;&nbsp; super();<br>&nbsp;&nbsp;&nbsp; this.searchName = searchName;<br>}<br><br>public String getSearchName() {<br>&nbsp;&nbsp;&nbsp; return searchName;<br>}<br><br>public void setSearchName(String searchName) {<br>&nbsp;&nbsp;&nbsp; this.searchName = searchName;<br>}<br><br>}<br><br></div><div style="font-family: tahoma,new york,times,serif; font-size: 10pt;">package com.sample;<br><br>import java.io.InputStreamReader;<br>import java.io.Reader;<br>import java.util.Properties;<br><br>import org.drools.RuleBase;<br>import org.drools.RuleBaseFactory;<br>import org.drools.StatefulSession;<br>import org.drools.compiler.PackageBuilder;<br>import org.drools.compiler.PackageBuilderConfiguration;<br>import
 org.drools.rule.Package;<br>import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;<br>import org.junit.Before;<br>import org.junit.Test;<br>import static org.junit.Assert.*;<br><br><br>public class GlobalTest {<br>&nbsp;&nbsp;&nbsp; private RuleBase ruleBase;<br><br>&nbsp;&nbsp;&nbsp; @Test<br>&nbsp;&nbsp;&nbsp; public void testWithGlobal() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StatefulSession ss = ruleBase.newStatefulSession();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Person p = new Person("John",false);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ss.insert(p);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SearchParam sp = new SearchParam("John");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ss.insert(sp);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ss.fireAllRules();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; assertTrue(p.getActivation().equals(true));<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; @Before<br>&nbsp;&nbsp;&nbsp; public void
 buildRules() throws Exception {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Reader source = new InputStreamReader(this.getClass()<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .getResourceAsStream("/test.drl"));<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Properties props = new Properties();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; props.setProperty("drools.dialect.java.compiler", "JANINO");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PackageBuilderConfiguration cfg = new PackageBuilderConfiguration(props);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .getDialectConfiguration("java");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; javaConf.setCompiler(JavaDialectConfiguration.JANINO);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PackageBuilder builder = new
 PackageBuilder(cfg);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; builder.addPackageFromDrl(source);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Package pkg = builder.getPackage();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ruleBase = RuleBaseFactory.newRuleBase();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ruleBase.addPackage(pkg);<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br><div style="font-family: arial,helvetica,sans-serif; font-size: 13px;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Wolfgang Laun &lt;wolfgang.laun@gmail.com&gt;<br><b><span style="font-weight: bold;">To:</span></b> Rules Users List &lt;rules-users@lists.jboss.org&gt;<br><b><span style="font-weight: bold;">Sent:</span></b> Monday, June 1, 2009 7:57:36 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: re[rules-users] move hardcoded values in DRL or have constants  inside drl<br></font><br>
But assigning a value to a global isn't straightforward - you can't do<br>it in the declaration. You'll have to do it from the application (or<br>use some dirty hack, in a start-up rule); either way it's separate<br>from the declaration.<br><br>IMHO, using a Java class with public static final is definitely cleaner.<br><br>-W<br><br><br>2009/6/1 Earnest Dyke &lt;<a ymailto="mailto:earniedyke@yahoo.com" href="mailto:earniedyke@yahoo.com">earniedyke@yahoo.com</a>&gt;:<br>&gt; How about adding them as Globals and referencing them that way? You should<br>&gt; be able to put them in a map as well in a Global and reference them.<br>&gt;<br>&gt; Earnie!<br>&gt;<br>&gt; ________________________________<br>&gt; From: karthizap &lt;<a ymailto="mailto:karthizap@gmail.com" href="mailto:karthizap@gmail.com">karthizap@gmail.com</a>&gt;<br>&gt; To: <a ymailto="mailto:rules-users@lists.jboss.org"
 href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>&gt; Sent: Monday, June 1, 2009 7:14:56 AM<br>&gt; Subject: re[rules-users] move hardcoded values in DRL or have constants<br>&gt; inside drl<br>&gt;<br>&gt; Is there is anyway i can remove hardcoded values in the DRL file? Can I have<br>&gt; the constants file(like data dictionary) inside drl/functions. I don't want<br>&gt; to refer java constants class directly in drl file and would like to declare<br>&gt; and refer those constants inside drl file.<br>&gt; ________________________________<br>&gt; View this message in context: remove hardcoded values in DRL or have<br>&gt; constants inside drl<br>&gt; Sent from the drools - user mailing list archive at <a target="_blank" href="http://Nabble.com">Nabble.com</a>.<br>&gt;<br>&gt; _______________________________________________<br>&gt; rules-users mailing list<br>&gt; <a ymailto="mailto:rules-users@lists.jboss.org"
 href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>&gt;<br>&gt;<br>_______________________________________________<br>rules-users mailing list<br><a ymailto="mailto:rules-users@lists.jboss.org" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></div></div></div></body></html>