<?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_Regensburg_G2</id>
	<title>Drools Regensburg G2 - 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_Regensburg_G2"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Regensburg_G2&amp;action=history"/>
	<updated>2026-04-21T08:54:26Z</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_Regensburg_G2&amp;diff=53336&amp;oldid=prev</id>
		<title>Filip Stachecki at 19:44, 17 March 2017</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Regensburg_G2&amp;diff=53336&amp;oldid=prev"/>
		<updated>2017-03-17T19:44:20Z</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;Select Salgrade&amp;quot; enabled false&lt;br /&gt;
when &lt;br /&gt;
 $s : Salgrade()&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $s.grade + &amp;quot; &amp;quot; + $s.losal + &amp;quot; &amp;quot; + $s.hisal)&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;employees who earn between 1000 and 2000&amp;quot; enabled true&lt;br /&gt;
when &lt;br /&gt;
	e : Emp(sal &amp;gt;= 1000 &amp;amp;&amp;amp; &amp;lt;= 2000)&lt;br /&gt;
then    &lt;br /&gt;
  	System.out.println(e.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot; + e.job  &lt;br /&gt;
    + &amp;quot;   \t&amp;quot; +  e.mgr  + &amp;quot;\t&amp;quot; + e.hiredate + &amp;quot; &amp;quot; + e.sal&lt;br /&gt;
     + &amp;quot; &amp;quot; + e.deptno );&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;example 3&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
	$e : Emp(job == &amp;quot;CLERK&amp;quot; &amp;amp;&amp;amp; deptno == 20)&lt;br /&gt;
then&lt;br /&gt;
	System.out.println($e.id + &amp;quot;\t&amp;quot; + $e.name + &amp;quot;\t&amp;quot; + $e.job + &amp;quot;\t&amp;quot; + $e.mgr + &amp;quot;\t&amp;quot; + $e.hiredate + &amp;quot;\t&amp;quot; + $e.sal + &amp;quot;\t&amp;quot; + $e.deptno)&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;employees who have a boss.&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.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.mgr + &amp;quot; &amp;quot; + $e.hiredate + &amp;quot; &amp;quot; + $e.sal + &amp;quot; &amp;quot; + $e.deptno  )&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 true&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp(job == &amp;quot;MANAGER&amp;quot;)&lt;br /&gt;
then &lt;br /&gt;
System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.mgr + &amp;quot; &amp;quot; + $e.hiredate + &amp;quot; &amp;quot; + $e.sal * 12 + &amp;quot; &amp;quot; + $e.deptno  )&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;
then &lt;br /&gt;
System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.mgr + &amp;quot; &amp;quot; + $e.hiredate + &amp;quot; &amp;quot; + $e.sal + &amp;quot; &amp;quot; + $e.deptno  )&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 true&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp(name matches &amp;quot;.*T.*N&amp;quot;)&lt;br /&gt;
then &lt;br /&gt;
System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.mgr + &amp;quot; &amp;quot; + $e.hiredate + &amp;quot; &amp;quot; + $e.sal + &amp;quot; &amp;quot; + $e.deptno  )&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;
enabled false&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;
then &lt;br /&gt;
System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.mgr + &amp;quot; &amp;quot; + $e.hiredate + &amp;quot; &amp;quot; + $e.sal + &amp;quot; &amp;quot; + $e.deptno  )&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;
enabled true&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.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;
enabled false&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.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot;  &lt;br /&gt;
    + &amp;quot; \t\t&amp;quot; +  d.loc + &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;
enabled false&lt;br /&gt;
when&lt;br /&gt;
	e : Emp()&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.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot;  &lt;br /&gt;
    + &amp;quot; \t\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;
enabled true&lt;br /&gt;
when&lt;br /&gt;
	e : Emp()&lt;br /&gt;
	d: Dept(e.deptno == deptno, loc == &amp;quot;LONDON&amp;quot;)&lt;br /&gt;
then    &lt;br /&gt;
    System.out.println(e.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot;  &lt;br /&gt;
    + &amp;quot; \t\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;
enabled true&lt;br /&gt;
when&lt;br /&gt;
	e : Emp()&lt;br /&gt;
	d: Dept(e.deptno == deptno, loc != &amp;quot;LONDON&amp;quot;)&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.id + &amp;quot; &amp;quot; + e.name + &amp;quot;\t&amp;quot;  + s.grade&lt;br /&gt;
    + &amp;quot; \t\t&amp;quot; +  d.loc );&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;
enabled true&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;
enabled true&lt;br /&gt;
when&lt;br /&gt;
   e1 :Emp()&lt;br /&gt;
   e2 :Emp(id == e1.mgr)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( e1.name + &amp;quot;\t --&amp;gt;&amp;quot; + e2.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;
enabled true&lt;br /&gt;
when  &lt;br /&gt;
 $e : Emp()&lt;br /&gt;
 not Emp($e.mgr == id)&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;
enabled true&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;
enabled true&lt;br /&gt;
when  &lt;br /&gt;
 $e : Emp()&lt;br /&gt;
 $m : Emp($e.mgr == id &amp;amp;&amp;amp; $e.hiredate &amp;lt; hiredate) &lt;br /&gt;
then &lt;br /&gt;
System.out.println($e.name + &amp;quot; (&amp;quot; +$e.hiredate+ &amp;quot;) was hired earlier than &amp;quot;+$m.name +&amp;quot;(&amp;quot;+$m.hiredate+&amp;quot;)&amp;quot; )&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;41. Select employees hired earlier than their bosses.&amp;quot; enabled true&lt;br /&gt;
when &lt;br /&gt;
	$emp : Emp($mgr : mgr, $empHireDate : hiredate)&lt;br /&gt;
	$boss : Emp(id == $mgr, $empHireDate &amp;lt; hiredate)&lt;br /&gt;
then    &lt;br /&gt;
  	System.out.println($emp.name + &amp;quot; hired in &amp;quot; + $empHireDate + &amp;quot; whose boss is &amp;quot; + $boss.name + &amp;quot; hired in &amp;quot; + $boss.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;
enabled true&lt;br /&gt;
when  &lt;br /&gt;
 $e : Emp(deptno==10) &amp;amp;&amp;amp; not Emp(job==$e.job &amp;amp;&amp;amp; deptno==20) &lt;br /&gt;
then &lt;br /&gt;
System.out.println($e.job)&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX24==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX26==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX25==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX27==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX43==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX28==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX45==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX46==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX51==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX55==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Filip Stachecki</name></author>
	</entry>
</feed>