Thank's for your sugession of using "not in" instead of "not" but my
problem is that "not" can also come without "in".

 

Actually I am making a generator of rule file from expression like

 ((NOT (ENDS WITH (G10.2, ",")))

 

 ((NOT (G13.1 IN ("1","2","3"))) OR (G250.8 = Y)))

 

Where G13.2, G250.8, G10.2 are variables coming from a map inserted in
working memory.

 

I am accessing these variables from map.

 

My rules are as follows

 

This rule is working fine.

 

rule "Editable_G10.3"

when

 

 ((Map( this["G10.3"] !=8))||(Map( this["G10.2"] ==19)))

 

then

System.out.println("comming
here----------------------------------------------------->");

End

 

This is not working

 

rule "Mandatory_G10.3"

when

 (not((Map( this["G10.3"] !=8))||(Map( this["G10.2"] ==19)))) 

Then

System.out.println("comming
here----------------------------------------------------->");

End

 

In also tried following approaches:

1)      eval(not((Map( this["G10.3"] !=8))||(Map( this["G10.2"] ==19))))


 

2) eval(!((Map( this["G10.3"] !=8))||(Map( this["G10.2"] ==19)))) 

 

But in both cases it is giving same error:

org.drools.rule.InvalidRulePackage: Rule Compilation error : [Rule
name=ValidationRuleExp_G10.3, agendaGroup=MAIN, salience=0,
no-loop=false]

 
com/telekurs/nva/mde/fe/ak/validation/Rule_ValidationRuleExp_G10_3_0.jav
a (11:495) : Cannot use this in a static context 

 
com/telekurs/nva/mde/fe/ak/validation/Rule_ValidationRuleExp_G10_3_0.jav
a (11:500) : Type mismatch: cannot convert from String to int

 

I am trying to find out some general concept so that I can change just
achieve the functionality of not.

 

Thanks

Gaurav 

 

________________________________

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Edson Tirelli
Sent: Wednesday, September 12, 2007 10:20 PM
To: Rules Users List
Subject: Re: [rules-users] How to use not operator in drool.

 


   Remove your "eval" and use "or" instead of "||" for the OR CE.

   Although, I feel that this is not what you want... what you want is
simply:

when
    Map( this['city'] not in ( "mumbai", "delhi" ) ) 
then
    //...
end
 
    []s
    Edson

2007/9/12, Gaurav2007 <[EMAIL PROTECTED]>:


Hi ALL,

I am using drool4.0.1 in my application i am able to use IN,OR,AND
operator
but i am facing problem in using not operator.

my requirement of not operator is just like a not gate.

the way i am using it is : 

eval(not((Map( this["city"] !="mumbai"))||(Map( this["city"]
=="delhi"))))


so can you please help me out to solve this problem:
should i use not operator or some thing else in drool. 

Thanks,


--
View this message in context:
http://www.nabble.com/How-to-use-not-operator-in-drool.-tf4430240.html#a
12638430 
Sent from the drools - user mailing list archive at Nabble.com.

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users




-- 
  Edson Tirelli 
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com 



This message contains information that may be privileged or confidential and is 
the property of the Capgemini Group. It is intended only for the person to whom 
it is addressed. If you are not the intended recipient,  you are not authorized 
to read, print, retain, copy, disseminate,  distribute, or use this message or 
any part thereof. If you receive this  message in error, please notify the 
sender immediately and delete all  copies of this message.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to