<div dir="ltr">Why&#39;s my rule not working properly? I&#39;m pointing my engineer and workorder filling with my list of skills, even so, it is not correctly giving the workorder to engineer.<div><br></div><div>There is an available engineer with a skill</div>
<div>and there is an unassigned workorder with skill</div><div style>and workorder skill is equals to engineer skill</div><div style>then assign workorder to engineer<br></div><div><div><br></div><div><div>rule &quot;requiredSkill&quot;</div>
<div><span class="" style="white-space:pre">        </span>when</div><div><span class="" style="white-space:pre">                </span>$engineer : Engineer()</div><div><span class="" style="white-space:pre">                </span>SkillEngineer( $skill : skill, engineer == $engineer ) from $engineer.skillEngineerList</div>
<div><span class="" style="white-space:pre">                </span></div><div><span class="" style="white-space:pre">                </span>$workOrder : WorkOrder( engineer == $engineer )</div><div><span class="" style="white-space:pre">                </span>$workOrderRequiredSkill : SkillWorkOrder( skill == $skill, workOrder == $workOrder ) from $workOrder.requiredSkills </div>
<div><span class="" style="white-space:pre">        </span>then</div><div><span class="" style="white-space:pre">                </span>insertLogical(new IntConstraintOccurrence(&quot;requiredSkill&quot;, ConstraintType.NEGATIVE_HARD,</div><div>
<span class="" style="white-space:pre">                        </span>1, $engineer));</div><div>end</div></div></div><div><br></div><div style>it always set the same engineer to every workorder</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/2/18 André Fróes <span dir="ltr">&lt;<a href="mailto:arfmoraes@gmail.com" target="_blank">arfmoraes@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I found (i guess) a way to iterate over list, but it is not comparing and assigning the workorder now. I tried this way:<div>-----------------<br></div><div>rule &quot;requiredSkill&quot;</div><div>
   when</div><div>       There is an unassigned workorder</div><div>       and the workorder has a requiredSkill other than null</div><div><br></div><div>       and there is an engineer<br></div><div>
       and the engineer has a skill other than null<br></div><div><br></div><div>       and engineer skill is the same as workorder skill<br></div><div>   then</div><div>       assign workorder to engineer<br>
</div><div>engineer</div><div>-----------------</div><div>this is how i tried implementing;</div><div>-----------------<br></div><div><div>rule &quot;requiredSkill&quot;</div><div><span style="white-space:pre-wrap">        </span>when</div>

<div><span style="white-space:pre-wrap">            </span>$workOrder : WorkOrder() </div><div><span style="white-space:pre-wrap">        </span>    $woReqSkill : SkillWorkOrder($requiredSkillWO : skill , eval(skill != null)) from $workOrder.requiredSkills </div>

<div><span style="white-space:pre-wrap">        </span>    </div><div><span style="white-space:pre-wrap">        </span>    $engineer : Engineer()</div><div><span style="white-space:pre-wrap">        </span>    $engineerSkill : SkillEngineer($engSkill : skill, eval(skill != null)) from $engineer.skillEngineerList</div>

<div><span style="white-space:pre-wrap">        </span>    </div><div><span style="white-space:pre-wrap">        </span>    exists SkillEngineer( $engineerSkill.skill == $woReqSkill.skill )</div><div><span style="white-space:pre-wrap">        </span>then</div>

<div><span style="white-space:pre-wrap">                </span>insertLogical(new IntConstraintOccurrence(&quot;requiredSkill&quot;, ConstraintType.NEGATIVE_HARD,</div><div><span style="white-space:pre-wrap">                        </span>1, $engineer));</div>

<div>end</div></div><div>-----------------<br></div><div>But all workorders are going to the same one, it is not validating if one is equals to other.</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">
2013/2/18 André Fróes <span dir="ltr">&lt;<a href="mailto:arfmoraes@gmail.com" target="_blank">arfmoraes@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Hello everyone!<div><br></div><div>How can I compare 2 lists with a rule?</div><div>I upgraded my basic model to a more complex one now, but now I hit a wall. My WorkOrder have a List of skills, and my Engineer also have a list of Skills and I have to compare one with another.</div>


<div><br></div><div>Example:</div><div><br></div><div>Engineer A have skill ABC 1</div><div>Engineer B have skill ABC 2</div><div>Engineer C have skill ABC 3</div><div><br></div><div>
WorkOrder A needs an engineer with skill ABC 3</div><div>WorkOrder B needs an engineer with skill ABC 1</div><div>WorkOrder C needs an engineer with skill ABC 2<br></div><div><br></div><div>The result should be this:</div>


<div><br></div><div>Engineer A will receive WorkOrder B</div><div>Engineer B will receive WorkOrder C<br></div><div>Engineer C will receive WorkOrder A<br></div><div>---------------</div><div>
<br></div><div>I am able to sort it by time, but not by skill, and I don&#39;t know how to loop over each list to find if one have the skills needed to fulful the other. These are my classes involved:</div><div>
<br></div><div>WorkOrder attributes:</div><div>--------</div><div><div>private int requiredWorktime;</div><div>private Priority priority;(enum)</div><div>private Severity severity;(enum)</div><div>private List&lt;SkillWorkOrder&gt; requiredSkills;</div>


<div>--------</div><div>Engineer attributes:</div><div>--------</div><div><div>private int worktime;</div><div>private String name;</div><div>private List&lt;SkillEngineer&gt; skillEngineerList;</div><div>
--------</div><div>Skill attributes:</div><div>--------</div><div>private String name;</div><div>--------</div><div><br></div><div>both SkillEngineer and SkillWorkOrder are classes that simple receives the named class and a Skill:<br>


</div><div>Eg:</div><div><div>private Engineer engineer; //Or WorkOrder</div><div>private Skill skill;</div><div><br></div><div>Is it possible to iterate over these 2 lists, by drool rule, to check wich engineer have most coincidences with an workorder? (Eg: if and Engineer have skill ABC1, ABC2 and a WorkOrder needs an engineer with skill ABC1, ABC2 and ABC3 he would be choseng among the others because his skills)</div>


</div><div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>