Hi again Wolfgang:<div><br></div><div>Thank you for your quick answer. getFactHandle is the method I needed.</div><div><br></div><div>Concerning the second question, I'm using Drools 5.1.1 and yes, I imported AlarmFact. Below you can find the relevant lines of the drl file, in which the 'real name' of AlarmFact is MDSVHechoAlarma:</div>
<div><br></div><div><div>#created on: 14-mar-2011</div><div>package es.simcasva.alarmas.rules</div><div><br></div><div>#list any import classes here.</div><div><br></div><div>//......</div><div>import es.simcasva.alarmas.src.MDSVHechoAlarma;</div>
<div><div>//......</div></div><div><br></div><div><br></div><div><br></div><div>#declare any global variables here</div><div><br></div><div><div>//......</div></div><div><br></div><div>query "existe Alarma" (MDSVHechoAlarma referencia)</div>
<div> $alarma : MDSVHechoAlarma( iIdAlarma == referencia.iIdAlarma, </div><div> strAgrup1 == referencia.strAgrup1,</div><div> strAgrup2 == referencia.strAgrup2,</div><div> strAgrup3 == referencia.strAgrup3,</div>
<div> strAgrup4 == referencia.strAgrup4,</div><div> strAgrup5 == referencia.strAgrup5,</div><div> strAgrup6 == referencia.strAgrup6,</div><div> strAgrup7 == referencia.strAgrup7,</div>
<div> strAgrup8 == referencia.strAgrup8,</div><div> strAgrup9 == referencia.strAgrup9,</div><div> strAgrup10 == referencia.strAgrup10</div><div> )</div>
<div><br></div><div>end</div><div><br></div><div>The reported errors are:</div><div><br></div><div><div>Description<span class="Apple-tab-span" style="white-space:pre">        </span>Resource<span class="Apple-tab-span" style="white-space:pre">        </span>Path<span class="Apple-tab-span" style="white-space:pre">        </span>Location<span class="Apple-tab-span" style="white-space:pre">        </span>Type</div>
<div>BuildError: Not possible to directly access the property 'iIdAlarma' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup1' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup10' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup2' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup3' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup4' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup5' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup6' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup7' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup8' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Not possible to directly access the property 'strAgrup9' of declaration 'referencia' since it is not a pattern<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>Unknown<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.iIdAlarma ]' for field 'iIdAlarma' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 185<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup1 ]' for field 'strAgrup1' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 186<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup10 ]' for field 'strAgrup10' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 195<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup2 ]' for field 'strAgrup2' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 187<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup3 ]' for field 'strAgrup3' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 188<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup4 ]' for field 'strAgrup4' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 189<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup5 ]' for field 'strAgrup5' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 190<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup6 ]' for field 'strAgrup6' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 191<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup7 ]' for field 'strAgrup7' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 192<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup8 ]' for field 'strAgrup8' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 193<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
<div>BuildError: Unable to create restriction '[QualifiedIndentifierRestr: == referencia.strAgrup9 ]' for field 'strAgrup9' in the rule 'existe Alarma'<span class="Apple-tab-span" style="white-space:pre">        </span>AlarmaReglasGenerales.drl<span class="Apple-tab-span" style="white-space:pre">        </span>/aitor/es/simcasva/alarmas/rules<span class="Apple-tab-span" style="white-space:pre">        </span>line 194<span class="Apple-tab-span" style="white-space:pre">        </span>Drools Error</div>
</div><div><br></div>Thank you very much for your time, Wolfgang.</div><div><br></div><div>Best regards,</div><div><br></div><div>Manuel Ortiz.</div><div><br></div><div><br><div class="gmail_quote">2011/4/29 Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">You can call<br> FactHandle fh = kSession.getFactHandle( factObj );<br><br><br> query "alarmExists" (AlarmFact key)<br>
should work in 5.1.1 and 5.2. Did you import AlarmFact in the DRL? Otherwise, what message are you getting in which version?<br>
<br>-W<br><br><div class="gmail_quote"><div><div></div><div class="h5">2011/4/29 Manuel Ortiz <span dir="ltr"><<a href="mailto:manuel.ortizramos@gmail.com" target="_blank">manuel.ortizramos@gmail.com</a>></span><br>
</div></div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div></div><div class="h5">
Hello everybody:<div><br></div><div>I have two question related to queries:</div><div><br></div><div>First one, the one in the subject, I have a query which retrieves facts which have to be modified and updated in working memory. I've seen that the StatefulKnowledgeSession.update() method has the fact handle as input. Is it possible to set the fact handle to null? If it isn't, how can I get the fact handle using the fact retrieved with the query?</div>
<div><br></div><div>Second one, related to writing, I though of parameterizing the query using the fact pattern, something like this, </div><div><br></div><div><div>query "alarmExists" (AlarmFact key)</div><div>
$alarm : AlarmFact(key1 == key.key1,</div><div> key2 == key.key2,</div><div> key3 == key.key3</div><div> )</div><div><br></div><div>end</div></div><div><br></div>
<div>
<br></div><div><br></div><div>but the rule compiler doesn't accept this sintax. Is it a requirement that query parameters are basic java types or is there a way to write this query using more complex Object parameters?</div>
<div><br></div><div>Thank you for your time.</div><div><br></div><div>Best Regards,</div><div><br></div><font color="#888888"><div>Manuel Ortiz.</div><div><br></div>
</font><br></div></div>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
<br></blockquote></div><br>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a 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>
<br></blockquote></div><br></div>