<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_Orange_13092017</id>
	<title>Drools Orange 13092017 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_Orange_13092017"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Orange_13092017&amp;action=history"/>
	<updated>2026-04-21T09:08:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Drools_Orange_13092017&amp;diff=60484&amp;oldid=prev</id>
		<title>Filip Stachecki at 03:11, 19 September 2017</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Orange_13092017&amp;diff=60484&amp;oldid=prev"/>
		<updated>2017-09-19T03:11:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Private]]&lt;br /&gt;
=Basic=&lt;br /&gt;
==EX1==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 1&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $s : Salgrade()&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($s.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX2==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 2&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( sal &amp;gt; 1000 , sal&amp;lt;2000 )&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX3==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 3&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( deptno==20 , job==&amp;quot;CLERK&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX4==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 4&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( mgr != 0)&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX5==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 5&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( job == &amp;quot;MANAGER&amp;quot; , $s: (sal * 12))&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  //$e.setSal($e.getSal*12)&lt;br /&gt;
  System.out.println($e.toString() + &amp;quot; Roczne wynagrodzenie: &amp;quot; + $s)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX6==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 6&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( name matches &amp;quot;.LA.*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX7==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 7&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( name matches &amp;quot;.*T.*N&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX8==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 8&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp ( (job == &amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; deptno != 10) || (job != &amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; deptno == 10))&lt;br /&gt;
&lt;br /&gt;
then	    &lt;br /&gt;
  System.out.println($e.toString())&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 8&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp((job==&amp;quot;MANAGER&amp;quot; || deptno==10) not in ((job==&amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; deptno==10)))&lt;br /&gt;
then &lt;br /&gt;
	  &lt;br /&gt;
  	System.out.println($e.toString())&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Advanced=&lt;br /&gt;
==EX31==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 31&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
	$e: Emp()&lt;br /&gt;
	$d: Dept($e.deptno == deptno)&lt;br /&gt;
then    &lt;br /&gt;
    System.out.println( $e.name + &amp;quot;\t&amp;quot; +  $d.loc );&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX32==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 32&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
	$d: Dept()&lt;br /&gt;
	$e: Emp($d.deptno == deptno)&lt;br /&gt;
then    &lt;br /&gt;
    System.out.println( $e.name + &amp;quot;\t&amp;quot; +  $d.dname + &amp;quot;\t&amp;quot; + $d.deptno  );&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX33==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 33&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
	$e: Emp(sal &amp;gt; 2000)&lt;br /&gt;
	$s: Salgrade($e.sal &amp;gt;= losal, $e.sal &amp;lt;= hisal)&lt;br /&gt;
then    &lt;br /&gt;
    System.out.println( $e.name + &amp;quot;\t&amp;quot; +  $e.sal + &amp;quot;\t&amp;quot; + $s.grade  );&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX34==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 34&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $d :Dept(loc == &amp;quot;LONDON&amp;quot;)&lt;br /&gt;
   $e :Emp($d.deptno == deptno)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println($e.name + &amp;quot;\t&amp;quot; + $d.loc )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX35==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 35&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $d :Dept(loc != &amp;quot;LONDON&amp;quot;)&lt;br /&gt;
   $e :Emp($d.deptno == deptno)&lt;br /&gt;
   $s :Salgrade($e.sal &amp;gt;= losal &amp;amp;&amp;amp; $e.sal &amp;lt;= hisal)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println($e.name+ &amp;quot;\t&amp;quot; + $d.loc + &amp;quot;\t&amp;quot; + $s.grade )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX36==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 36&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $d :Dept()&lt;br /&gt;
   not (Emp(deptno == $d.deptno))&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $d.dname )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX37==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 37&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $e :Emp()&lt;br /&gt;
   $m :Emp(id == $e.mgr)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $e.name + &amp;quot; boss is &amp;quot; + $m.name )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX38==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 38&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $e :Emp()&lt;br /&gt;
   not (Emp(id == $e.mgr))&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $e.name)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX39==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 39&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
	$e: Emp()&lt;br /&gt;
	not Emp( $e.id == mgr)&lt;br /&gt;
then    &lt;br /&gt;
    System.out.println( $e.name );&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX41==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 41&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $m :Emp()&lt;br /&gt;
   $e :Emp($m.id == mgr, hiredate &amp;lt; $m.hiredate)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $e.name + &amp;quot; was hired in &amp;quot; + $e.hiredate + &amp;quot;, their boss &amp;quot; + $m.name + &amp;quot; was hired in &amp;quot; + $m.hiredate )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX44==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 44&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $e :Emp(deptno == 10)&lt;br /&gt;
  not (Emp(deptno == 20, job == $e.job))&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $e.job + &amp;quot; &amp;quot; + $e.deptno)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX23==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 23&amp;quot;&lt;br /&gt;
//enabled false&lt;br /&gt;
when &lt;br /&gt;
  accumulate (e :Emp(hiredate == 1981), &lt;br /&gt;
  	$avg : average(e.sal),&lt;br /&gt;
  	$min : min(e.sal),&lt;br /&gt;
  	$max : max(e.sal)&lt;br /&gt;
  	) &lt;br /&gt;
 &lt;br /&gt;
then    &lt;br /&gt;
	 System.out.println(&lt;br /&gt;
   &amp;quot;Average salary: &amp;quot; + $avg + &amp;quot;\n&amp;quot; +&lt;br /&gt;
  &amp;quot;Min salary: &amp;quot; + $min + &amp;quot;\n&amp;quot; +&lt;br /&gt;
  &amp;quot;Max salary: &amp;quot; + $max + &amp;quot;\n&amp;quot;&lt;br /&gt;
  )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX24==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 24&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
  accumulate (e: Emp(), &lt;br /&gt;
  	$min : min(e.sal),&lt;br /&gt;
  	$max : max(e.sal)&lt;br /&gt;
  	) &lt;br /&gt;
then    &lt;br /&gt;
  System.out.println(&amp;quot;Salary range: &amp;quot; + ($max - $min))&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX26==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 26&amp;quot;&lt;br /&gt;
//enabled false&lt;br /&gt;
when&lt;br /&gt;
  accumulate ($e: Emp($e.job == &amp;quot;MANAGER&amp;quot;), &lt;br /&gt;
  	$count : count() )&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println(&amp;quot;MANAGER: &amp;quot; + $count)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX25==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 declare SalByJob&lt;br /&gt;
   job : String&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 rule &amp;quot;Exercise 25&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   Emp(j: job) and&lt;br /&gt;
   not SalByJob(j == job)&lt;br /&gt;
   accumulate (e :Emp(job == j), 	$avg : average(e.sal)   	) &lt;br /&gt;
then    &lt;br /&gt;
   System.out.println(   &amp;quot;Average salary in position &amp;quot; + j + &amp;quot; is: &amp;quot; + $avg + &amp;quot;\n&amp;quot; )&lt;br /&gt;
   insert(new SalByJob(j))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX27==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
declare Dep&lt;br /&gt;
   $depno : int&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Exercise 24&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   Emp($d: deptno) and&lt;br /&gt;
   not Dep($depno == $d)&lt;br /&gt;
   accumulate (e :Emp( deptno== $d), 	$avg : average(e.sal)   	) &lt;br /&gt;
then    &lt;br /&gt;
   System.out.println($d + &amp;quot; &amp;quot; + ($avg*12))&lt;br /&gt;
   insert(new Dep($d))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX43==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;43+&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
	e1 : Emp(hiredate == 1982)&lt;br /&gt;
	e2 : Emp(hiredate == 1983)&lt;br /&gt;
	exists (Emp(e1.job == job, e2.job == job))&lt;br /&gt;
then&lt;br /&gt;
   System.out.println( e1.job)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 43&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when&lt;br /&gt;
   $d:Emp(hiredate==1982)&lt;br /&gt;
   $dd:Emp($d.job==$dd.job,hiredate==1983)&lt;br /&gt;
then    &lt;br /&gt;
   System.out.println($dd.job)&lt;br /&gt;
   &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX28==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;28 Find departments with more than 3 workers. &amp;quot;&lt;br /&gt;
when&lt;br /&gt;
  x: Dept(d: deptno) &lt;br /&gt;
  accumulate (e :Emp(deptno == d), &lt;br /&gt;
  	$count : count()&lt;br /&gt;
   	) &lt;br /&gt;
  Number(doubleValue &amp;gt; 3) from $count&lt;br /&gt;
then    &lt;br /&gt;
   System.out.println(x.deptno + &amp;quot;  &amp;quot; + $count&lt;br /&gt;
)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
declare Depts&lt;br /&gt;
   dept : Integer&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Find departments with more than 3 workers.&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
  Emp(d: deptno) and  not Depts(d == dept)&lt;br /&gt;
  accumulate (e :Emp(deptno == d), &lt;br /&gt;
  	$c : count(e)&lt;br /&gt;
   	) &lt;br /&gt;
  Number(doubleValue &amp;gt; 3) from $c&lt;br /&gt;
then&lt;br /&gt;
   System.out.println(&amp;quot;deptno: &amp;quot; + d + &amp;quot; count: &amp;quot; + $c)   &lt;br /&gt;
    insert(new Depts(d))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 28&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when&lt;br /&gt;
   Emp($d: deptno) and&lt;br /&gt;
   not Dep($depno == $d)&lt;br /&gt;
   accumulate (e :Emp( deptno== $d), $c : count(e.name))&lt;br /&gt;
   Number(intValue &amp;gt; 3) from $c&lt;br /&gt;
    &lt;br /&gt;
then    &lt;br /&gt;
   System.out.println($d + &amp;quot; &amp;quot; + ($c))&lt;br /&gt;
   insert(new Dep($d))&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX45==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 45 Find employees earning more than the manager’s (job==&amp;#039;MANAGER&amp;#039;) average.&amp;quot; enabled false&lt;br /&gt;
when&lt;br /&gt;
  Number($avgNumber : longValue) from accumulate (e:Emp(job==&amp;#039;MANAGER&amp;#039;), average(e.sal))&lt;br /&gt;
  $e:Emp(sal &amp;gt; $avgNumber)&lt;br /&gt;
then&lt;br /&gt;
  System.out.println($e.name + &amp;quot;:&amp;quot; + $e.sal)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
declare SalByJob&lt;br /&gt;
   $job : String&lt;br /&gt;
   $d: double&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Exercise 45&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when&lt;br /&gt;
   Emp($j: job, job==&amp;quot;MANAGER&amp;quot;) //and&lt;br /&gt;
   not SalByJob($j == $job)&lt;br /&gt;
   accumulate (e :Emp(job == $j), 	$avg : average(e.sal)   	) &lt;br /&gt;
then    &lt;br /&gt;
   //System.out.println($j + &amp;quot; &amp;quot; + $avg)&lt;br /&gt;
   insert(new SalByJob($j,$avg))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Exercise 45a&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$dd: SalByJob()&lt;br /&gt;
	$e: Emp(sal&amp;gt;$dd.$d) &lt;br /&gt;
then &lt;br /&gt;
 System.out.println($e)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX46==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 46 Select employees earning the maximum salaries in their positions (jobs).&amp;quot; enabled false&lt;br /&gt;
when&lt;br /&gt;
  $e:Emp()&lt;br /&gt;
  Number($max : longValue) from accumulate (e:Emp(job==$e.job), max(e.sal))&lt;br /&gt;
  Number(doubleValue == $e.sal) from $max&lt;br /&gt;
then&lt;br /&gt;
  System.out.println($e.name + &amp;quot; &amp;quot; +$e.job + &amp;quot;:&amp;quot; + $e.sal)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DSL=&lt;br /&gt;
==EX1==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[condition][]There are employees earning more than {salary}=e:Emp(sal &amp;gt; {salary})&lt;br /&gt;
[*][]Show name and salary=System.out.println(&amp;quot;Name: &amp;quot; + e.name + &amp;quot; Salary: &amp;quot; + e.sal)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
package rules1&lt;br /&gt;
import com.nobleprog.FactModel.*;&lt;br /&gt;
import java.lang.Math&lt;br /&gt;
dialect &amp;quot;mvel&amp;quot; &lt;br /&gt;
&lt;br /&gt;
expander  Exercise01.dsl&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Rule 1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
when&lt;br /&gt;
 There are employees earning more than 2000&lt;br /&gt;
then&lt;br /&gt;
 Show name and salary&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EX2==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[condition][]There is a department which:=d: Dept()&lt;br /&gt;
[condition][]- is located in {city}=loc == &amp;quot;{city}&amp;quot;&lt;br /&gt;
[consequence][]Show department name=System.out.println(d.dname)&lt;br /&gt;
[condition][]- department number is greater than {cnt}=deptno &amp;gt; {cnt}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
package rules2&lt;br /&gt;
import com.nobleprog.FactModel.*;&lt;br /&gt;
import java.lang.Math&lt;br /&gt;
dialect &amp;quot;mvel&amp;quot; &lt;br /&gt;
&lt;br /&gt;
expander  Exercise02.dsl&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Rule 2&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
 There is a department which:&lt;br /&gt;
	- is located in LONDON&lt;br /&gt;
	- department number is greater than 5&lt;br /&gt;
then&lt;br /&gt;
 	Show department name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Filip Stachecki</name></author>
	</entry>
</feed>