[rules-users] Object Referencing error:
Esteban Aliverti
esteban.aliverti at gmail.com
Thu Jun 3 16:51:10 EDT 2010
You can't modify bobject, becuase it doesn't exist inside the session. You
just created it a few lines above. Maybe you need an insert() or maybe you
need the bobject reference from the LHS. Something like this:
*rule* "prod"
*when*
$a :A(Type == "Prod" , objectB != "")
*then*
B bobject = *new* B();
$a.getObjectB().setType( "Prod" );
$a.getObjectB().setId($a.getNumber().getId());
*update*($a);
* end*
Note that you need to update $a and not B, because A is the inserted Fact in
your session.
Best,
2010/6/3 Fnu Mahalakshmi <FMahalakshmi at nyx.com>
> Hi,
>
>
>
> I am getting the following error when I try to do complex object
> referencing in drools:
>
> My class:
>
> A{
>
> String Type;
>
> B objectb;
>
> //getters and setters for above
>
> }
>
>
>
> My rules:
>
>
>
> *rule* "prod"
>
>
>
> *when*
>
> $a :A(Type == "Prod" , objectB != "")
>
> *then*
>
> B bobject = *new* B();
>
> bobject.setType( "Prod" );
>
> bobject.setId($a.getNumber().getId());
>
> *update*(bobject);
>
>
>
> *end*
>
> * *
>
> *I want to basically output a file which has updated values of B (type,
> Id)
>
> *
>
> * *
>
> *Error:*
>
> *org.drools.spi.ConsequenceException*: *org.drools.FactException*: Update
> error: handle not found for object: com.org.Ip at f42ad0. Is it in the
> working memory?
>
> at
> org.drools.base.DefaultConsequenceExceptionHandler.handleException(*
> DefaultConsequenceExceptionHandler.java:13*)
>
> at org.drools.common.DefaultAgenda.fireActivation(*
> DefaultAgenda.java:558*)
>
> at org.drools.common.DefaultAgenda.fireNextItem(*
> DefaultAgenda.java:518*)
>
> at org.drools.common.AbstractWorkingMemory.fireAllRules(*
> AbstractWorkingMemory.java:475*)
>
> at org.drools.common.AbstractWorkingMemory.fireAllRules(*
> AbstractWorkingMemory.java:439*)
>
> at com.org.DroolsTest.main(*DroolsTest.java:30*)
>
> Caused by: *org.drools.FactException*: Update error: handle not found for
> object: com.org.Ip at f42ad0. Is it in the working memory?
>
> at org.drools.base.DefaultKnowledgeHelper.update(*
> DefaultKnowledgeHelper.java:100*)
>
> at com.org.Rule_Prod_Ip_0.consequence(*Rule_Prod_Ip_0.java:10*)
>
> at com.org.Rule_Prod_Ip_0ConsequenceInvoker.evaluate(*
> Rule_Prod_Ip_0ConsequenceInvoker.java:22*)
>
> at org.drools.common.DefaultAgenda.fireActivation(*
> DefaultAgenda.java:554*)
>
> ... 4 more
>
>
>
> Please help! I am very new to drools! Not able to figure out why this
> error:
>
>
>
> I am using eclipse and working on Windows machine. Error above was
> generated on eclipse console.
>
>
>
> Thank you.
>
>
>
> M
>
> ------------------------------
>
> *Please consider the environment before printing this email.*
>
> *Visit our website at http://www.nyse.com
> *****************************************************************************
>
> Note: The information contained in this message and any attachment to it is
> privileged, confidential and protected from disclosure. If the reader of
> this message is not the intended recipient, or an employee or agent
> responsible for delivering this message to the intended recipient, you are
> hereby notified that any dissemination, distribution or copying of this
> communication is strictly prohibited. If you have received this
> communication in error, please notify the sender immediately by replying to
> the message, and please delete it from your system. Thank you. NYSE
> Euronext. *
>
>
> _______________________________________________
> 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/20100603/f0f29ddf/attachment.html
More information about the rules-users
mailing list