[rules-dev] Conversion Error in DRL file

Wolfgang Laun wolfgang.laun at gmail.com
Fri Feb 11 05:37:35 EST 2011


I can reproduce the error and I'll create a JIRA.

There are several things I can suggest as a workaround.

(1) Try using global Double for the temperature limits.

(2) Better: Use a single Parameter fact with double fields for
temperatureElevee and temperatureCritique:

  rule "1- aTraiterUrgent"
       when
               Parameter( $te: temperatureElevee )
               $patient : PatientDto( eval(
$patient.getDoubleValue("temperature") > $te ) )

(2++) You might also provide a getter double getTemperature for PatientDto.

  rule "1- aTraiterUrgent"
       when
               Parameter( $te: temperatureElevee)
               $patient : PatientDto( termperature > $te )

-W


On 11 February 2011 09:21, Nico ROEDERER <ino.nicolas at gmail.com> wrote:

>  Yeah, temperatureCritique is greater than temperatureElevee
>
> Here's my PatientDto constructor :
> ("temperature" is one of the "caracteristique"  of the  HashMap...)
> public PatientDto( long pNum, String pNom, HashMap<String, String> pMap ) {
>        setNumPatient( pNum );
>        setNomPatient( pNom );
>        setCaracteristique( pMap );
> }
>
> In a properties file :
> valeur.verifTemperature.elevee    = 37
> valeur.verifTemperature.critique  = 40
>
> In my 'RunRules.java' :
> vSession.setGlobal( "temperatureElevee", Integer.parseInt(
>                   vProp.getProperty( "valeur.verifTemperature.elevee" ) )
> );
> vSession.setGlobal( "temperatureCritique", Integer.parseInt(
>                   vProp.getProperty( "valeur.verifTemperature.critique" ) )
> );
>
> ( vProp.getProperty( "valeur.verifTemperature.elevee" )  return 37 and
> vProp.getProperty( "valeur.verifTemperature.critique" ) return 40)
>
> I don't know what's wrong....
>
> Thanks for the help.
>
>
> Le 10/02/2011 19:38, Wolfgang Laun a écrit :
>
> How, exactly, do you set the globals and how do you create the PatientDTO
> fact?
>
> If the temperature is higher than temperatureCritique >=
> temperatureElevee, both rules will fire.
>
> -W
>
>  On 10 February 2011 16:00, ino.nicolas <ino.nicolas at gmail.com> wrote:
>
>>
>> Hi. I've got a trouble in a drl file.
>> Here's my file :
>>
>> #created on: 9 févr. 2011
>> package regles
>>
>> # import
>> import com.compagny.rules.metier.dto.PatientDto;
>>
>> # global variables
>> global Integer surPoids;
>> global Integer diffTaille;
>> global Integer temperatureElevee;
>> global Integer temperatureCritique;
>> global Integer tropGrand;
>>
>> rule "1- aTraiterUrgent"
>>        when
>>                $patient : PatientDto()
>>                eval( $patient.getDoubleValue("temperature") >
>> temperatureCritique )
>>        then
>>                $patient.addCommentaire( " Le patient " +
>> $patient.getNomPatient() + " est
>> à traiter d'URGENCE. " );
>> end
>>
>> rule "2- estFievreux"
>>        when
>>                $patient : PatientDto()
>>                eval( $patient.getDoubleValue("temperature") >
>> temperatureElevee.doubleValue() )
>>        then
>>                $patient.addCommentaire(
>> $patient.getDoubleValue("temperature") +
>>                        " - Le patient " + $patient.getNomPatient() + " est
>> fievreux. " );
>> end
>>
>>
>> The both rules are nearly the same. Except the comparator (
>> temperatureCritique and temperatureElevee).
>> My problem :
>> - If I put the '.doubleValue()' to the both rule, the second rule will
>> never
>> be launched.
>> - If I don't put the '.doubleValue()' in the first and the second rule,
>> the
>> second rule will never be launched.
>> - If I put the '.doubleValue()' in one of the two rules (never mind if
>> it's
>> in the first or second one), both of the rules are launched.
>>
>> I don't know what I did wrong...
>> Could you please help me ?
>>
>> --
>> View this message in context:
>> http://drools-java-rules-engine.46999.n3.nabble.com/Conversion-Error-in-DRL-file-tp2466448p2466448.html
>> Sent from the Drools - Dev mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>
>
>
> _______________________________________________
> rules-dev mailing listrules-dev at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-dev
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20110211/cb7591e4/attachment-0001.html 


More information about the rules-dev mailing list