[rules-users] Unable to create Field Extractor

Esteban Aliverti esteban.aliverti at gmail.com
Sun May 30 21:51:21 EDT 2010


Did you try using:

       AlarmFailureEvent(
           btsNumber == $BTS.number,
           $ID : ID
       )

Note that btsNumber starts with a lowercase letter.

Best,

On Sun, May 30, 2010 at 9:04 PM, Djerir Smail <1983djerir at gmail.com> wrote:

> Hello everybody,
>
> *I need help please  **I am new in drools,  to start I am trying to
> write some simple examples with drools fusion . I wrote a rule  which
> print a message when an alarm is received multiple times during 20
> minutes but i get this error
> *
>     [java] Unable to create Field Extractor for 'BtsNumber' of
> '[ClassObjectType event=com.mfe.casestudy.pojo.AlarmFailureEvent]' in
> rule 'MaxBtsAlarmrule' : [Rule name='MaxBtsAlarmrule']
>     [java] java.lang.IllegalArgumentException: Could not parse knowledge.
>     [java]     at
> com.mfe.casestudy.test.Tester.prepareKnowledgeBase(Tester.java:73)
>     [java]     at com.mfe.casestudy.test.Tester.setUp(Tester.java:43)
>     [java]     at com.mfe.casestudy.test.Tester.main(Tester.java:87)
>     [java] Exception in thread "main" java.lang.NullPointerException
>     [java]     at
>
> com.mfe.casestudy.test.Tester.prepareStatefulKnowledgeSession(Tester.java:58)
>     [java]     at com.mfe.casestudy.test.Tester.setUp(Tester.java:44)
>     [java]     at com.mfe.casestudy.test.Tester.main(Tester.java:87)
>     [java] Java Result: 1
> main:
>
>
> *This is my rule  it calculates  the number of alarms received from one
> BTS and if this number  exceeds the threshold it prints a warning message *
> rule "MaxBtsAlarmrule"
> dialect "mvel"
> no-loop true
> salience 100
> when
>    $BTS : BTS()
>
>    # check if the number of alarms of last 20 minutes exceeds
>    # the BTS threshold
>    $numOfAlarms : Number( intValue > $BTS.threshold )
>    from accumulate(
>        AlarmFailureEvent(
>            BtsNumber == $BTS.number,
>            $ID : ID
>        )
>        over window:time(3) from
>        entry-point BTSAlarmStream,
>        count($ID)
>    )
>
>
> then
>  System.out.println("BTS should  be restarted...");
>
> end
>
> Finally this is the  alarm event class
>
> public class AlarmFailureEvent implements Serializable {
>
>    /**
>     *
>     */
>    private static final long serialVersionUID = 1L;
>
>    public String BtsNumber = "";
>    private int code = 0;
>    private int ID=0;
>    public  AlarmFailureEvent(String BtsNumber, int code ,int ID) {
>        this.BtsNumber = BtsNumber;
>        this.ID=ID;
>        this.code=code;
>    }
>
>    public void setID(int iD) {
>        this.ID = iD;
>    }
>    public int getID() {
>        return this.ID;
>    }
>    public void setCode(int code) {
>        this.code = code;
>    }
>    public int getCode() {
>        return this.code;
>    }
>
>    public void setBtsNumber(String btsNumber) {
>        this.BtsNumber = btsNumber;
>    }
>
>    public String getBtsNumber() {
>        return BtsNumber;
>    }
>
> }
>
> *Thank you *
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100530/b912d245/attachment.html 


More information about the rules-users mailing list