<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
First, thank you for yours answers which are very clear. Your solution will probably work. I'm just desapointed that there is no way to synchronized the shadow with the object. That would be great for my work.<br><br><blockquote><hr>Subject: RE: [rules-users] Synch Business Object / Working Memory<br>Date: Fri, 11 Apr 2008 14:57:52 +0100<br>From: manstis1@ford.com<br>To: rules-users@lists.jboss.org<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">

<style>
.ExternalClass .EC_hmmessage P
{padding-right:0px;padding-left:0px;padding-bottom:0px;padding-top:0px;}
.ExternalClass BODY.EC_hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>



<div dir="ltr" align="left"><font color="#0000ff" face="Arial"><span class="EC_008434813-11042008">Do you need ruleflow? Perhaps this is too simple and I 
misunderstood.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" face="Arial"><span class="EC_008434813-11042008"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">package com.sample;</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">public class Test {</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; private Integer 
a;<br>&nbsp;&nbsp;&nbsp; private Integer b;<br>&nbsp;&nbsp;&nbsp; private 
Integer c;</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public Integer getA() 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return a;<br>&nbsp;&nbsp;&nbsp; 
}</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public Integer getB() 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return b;<br>&nbsp;&nbsp;&nbsp; 
}</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public Integer getC() 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return c;<br>&nbsp;&nbsp;&nbsp; 
}</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public void setA(Integer a) 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.a = 
a;<br>&nbsp;&nbsp;&nbsp; }</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public void setB(Integer b) 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.b = 
b;<br>&nbsp;&nbsp;&nbsp; }</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">&nbsp;&nbsp;&nbsp; public void setC(Integer c) 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.c = 
c;<br>&nbsp;&nbsp;&nbsp; }</span></font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" face="Courier New"><span class="EC_008434813-11042008">}</span></font></div>
<div>&nbsp;</div>
<div><font color="#0000ff" face="Courier New">package com.sample</font></div>
<div>&nbsp;</div>
<div><font color="#0000ff" face="Courier New">import 
com.sample.Test<br>&nbsp;<br>rule "rule 1"<br>&nbsp;&nbsp;&nbsp; salience 
90<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : 
Test( a != null, b == null )<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; 
&nbsp;System.out.println("setting b to 
10");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
a.setB(10);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
update(a);<br>end</font></div>
<div>&nbsp;</div>
<div><font color="#0000ff" face="Courier New">rule "rule 2"<br>&nbsp;&nbsp;&nbsp; 
salience 80<br>&nbsp;&nbsp;&nbsp; 
when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : Test( b : b != null, c == 
null )<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; 
&nbsp;System.out.println("setting c to b x 
5");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.setC(b * 
5);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update(a);<br>end</font></div>
<div>&nbsp;</div>
<div><font color="#0000ff" face="Courier New">rule "rule 3"<br>&nbsp;&nbsp;&nbsp; 
salience 70<br>&nbsp;&nbsp;&nbsp; 
when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : Test( c != null 
)<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;System.out.println("c = 
" + a.getC());<br>end<br></font></div>
<div><font color="#0000ff" face="Courier New"></font>&nbsp;</div>
<div><br></div>
<blockquote style="margin-right: 0px;">
  <div class="EC_OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
  <hr>
  <font face="Tahoma"><b>From:</b> rules-users-bounces@lists.jboss.org 
  [mailto:rules-users-bounces@lists.jboss.org] <b>On Behalf Of </b>Jonathan 
  Guéhenneux<br><b>Sent:</b> 11 April 2008 13:23<br><b>To:</b> Rules Users 
  List<br><b>Subject:</b> RE: [rules-users] Synch Business Object / Working 
  Memory<br></font><br></div>
  <div></div>Indeed, it works but I will have to use such booleans for a lot of 
  rules.<br><br>Cause my rule flow is <span class="EC_def-example">schematically</span> :<br><br>compute A<br>compute 
  B(A)<br>compute C(B)<br>...<br><br>Perhaps I may create several ruleflows, one 
  per independant computing?<br><br>
  <blockquote>
    <hr>
    Subject: RE: [rules-users] Synch Business Object / Working Memory<br>Date: 
    Fri, 11 Apr 2008 12:11:32 +0100<br>From: manstis1@ford.com<br>To: 
    rules-users@lists.jboss.org<br><br>
    
    <style>
.ExternalClass .EC_hmmessage P
{padding-right:0px;padding-left:0px;padding-bottom:0px;padding-top:0px;}
.ExternalClass BODY.EC_hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>

    <div dir="ltr" align="left"><span class="EC_EC_694480211-11042008"><font color="#0000ff" face="Arial">I was thinking something more like this:-</font></span></div>
    <div dir="ltr" align="left"><span class="EC_EC_694480211-11042008"><font color="#0000ff" face="Arial"></font></span>&nbsp;</div>
    <div dir="ltr" align="left"><span class="EC_EC_694480211-11042008"><font color="#960000"><font color="#960000"></font>
    <p align="left"><font color="#960000"><font color="#0000ff" face="Courier New">package com.sample</font></font></p>
    <p align="left"><font color="#960000"><font color="#0000ff" face="Courier New">import com.sample.Test<br>&nbsp;<br>rule "rule 1 - 
    1"<br>&nbsp;&nbsp;&nbsp; salience 90<br>&nbsp;&nbsp;&nbsp; 
    when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : 
    Test(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;computed == 
    "false",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    c &lt; 
    15,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d 
    &gt;= 75)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 
    then<br>&nbsp;&nbsp;&nbsp; &nbsp;System.out.println("setting e to 
    0");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    a.setE(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    update(a);<br>end</font></font></p>
    <p align="left"><font color="#960000"><font color="#0000ff" face="Courier New"></font></font>&nbsp;</p>
    <p align="left"><font color="#960000"><font color="#0000ff" face="Courier New">rule "rule 1 - 2"<br>&nbsp;&nbsp;&nbsp; salience 
    10<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    a : 
    Test(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    computed == 
    "false",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    c &lt; 
    15,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d 
    &gt;= 75)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 
    then<br>&nbsp;&nbsp;&nbsp; &nbsp;System.out.println("setting e to 
    1");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    a.setE(1);<br>end<br></font></font></p></font><font color="#960000">
    <p align="left"><font color="#0000ff" face="Arial"><span class="EC_EC_694480211-11042008">Note rule "rule 1 - 2" deliberately uses the 
    same patterns as rule "rule 1 - 1".</span></font></p></font></span></div>
    <div>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">package com.sample;</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">public class&nbsp;<span class="EC_EC_694480211-11042008">Test</span> {<br>&nbsp;&nbsp;&nbsp; 
    <br>&nbsp;&nbsp;&nbsp; private boolean computed 
    =false;<br>&nbsp;&nbsp;&nbsp; private int c=0;<br>&nbsp;&nbsp;&nbsp; private 
    int d=80;<br>&nbsp;&nbsp;&nbsp; private int e;</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">&nbsp;&nbsp;&nbsp; public String 
    getComputed(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    if(computed)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    return "true";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
    "false";<br>&nbsp;&nbsp;&nbsp; }</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">&nbsp;&nbsp;&nbsp; public int 
    getC() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
    c;<br>&nbsp;&nbsp;&nbsp; }</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">&nbsp;&nbsp;&nbsp; public int 
    getD() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
    d;<br>&nbsp;&nbsp;&nbsp; }</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">&nbsp;&nbsp;&nbsp; public void 
    setE(int e){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.e = 
    e;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computed = 
    true;<br>&nbsp;&nbsp;&nbsp; }</font></div>
    <div><font face="Courier New"></font>&nbsp;</div>
    <div><font color="#0000ff" face="Courier New">}<br></font></div>
    <div><span class="EC_EC_694480211-11042008"><font color="#0000ff" face="Arial">Rule 
    "rule 1 - 1" is the only rule to run (and runs once); the second activatino 
    being cancelled due to the update to "computed".&nbsp;Here's the audit 
    view:-</font></span></div>
    <div><span class="EC_EC_694480211-11042008"><font color="#0000ff" face="Arial"></font></span>&nbsp;</div><font color="#0000ff" face="Courier New">&lt;object-stream&gt;<br>&nbsp; 
    &lt;list&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;activationId&gt;rule 1 - 1 
    [1]&lt;/activationId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rule&gt;rule 
    1 - 1&lt;/rule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;declarations&gt;a=com.sample.Test@67126712(1)&lt;/declarations&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;4&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;activationId&gt;rule 1 - 2 
    [1]&lt;/activationId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rule&gt;rule 
    1 - 2&lt;/rule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;declarations&gt;a=com.sample.Test@67126712(1)&lt;/declarations&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;4&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ObjectLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;factId&gt;1&lt;/factId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;objectToString&gt;com.sample.Test@67126712&lt;/objectToString&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;1&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ObjectLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;activationId&gt;rule 1 - 1 
    [1]&lt;/activationId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rule&gt;rule 
    1 - 1&lt;/rule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;declarations&gt;a=com.sample.Test@67126712(1)&lt;/declarations&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;6&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;activationId&gt;rule 1 - 2 
    [1]&lt;/activationId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rule&gt;rule 
    1 - 2&lt;/rule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;declarations&gt;a=com.sample.Test@67126712(1)&lt;/declarations&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;5&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ObjectLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;factId&gt;1&lt;/factId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;objectToString&gt;com.sample.Test@67126712&lt;/objectToString&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;2&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ObjectLogEvent&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;activationId&gt;rule 1 - 1 
    [1]&lt;/activationId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rule&gt;rule 
    1 - 1&lt;/rule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;declarations&gt;a=com.sample.Test@67126712(1)&lt;/declarations&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;type&gt;7&lt;/type&gt;<br>&nbsp;&nbsp;&nbsp; 
    &lt;/org.drools.audit.event.ActivationLogEvent&gt;<br>&nbsp; 
    &lt;/list&gt;<br>&lt;/object-stream&gt;</font> 
    <div><span class="EC_EC_694480211-11042008"></span>&nbsp;</div>
    <div><br></div>
    <blockquote style="margin-right: 0px;">
      <div class="EC_EC_OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
      <hr>
      <font face="Tahoma"><b>From:</b> rules-users-bounces@lists.jboss.org 
      [mailto:rules-users-bounces@lists.jboss.org] <b>On Behalf Of </b>Jonathan 
      Guéhenneux<br><b>Sent:</b> 11 April 2008 11:33<br><b>To:</b> Rules Users 
      List<br><b>Subject:</b> RE: [rules-users] Synch Business Object / Working 
      Memory<br></font><br></div>
      <div></div>Ok, I think I understood well. I modified my business code, now 
      I call if<br><br>(wm != null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
      &nbsp;&nbsp;&nbsp; wm.update(wm.getFactHandle(this), this);<br><br>each 
      time a properties is modified.<br><br>But it is worse. Rules that sould be 
      activated only once actually loop, even if I add the no-loop 
      clause.<br><br>I understand why they loop, assuming update = (rectact + 
      insert), but I dont get a solution to my problem. I just want to notify an 
      object changement in order to read again the properties, but I dont want 
      to restart the ruleflow.<br><br>Sorry, but I find hard to say it in 
      english because even in french, it's not very clear ;)<br>
      <blockquote>
        <hr>
        Subject: RE: [rules-users] Synch Business Object / Working 
        Memory<br>Date: Fri, 11 Apr 2008 10:39:41 +0100<br>From: 
        manstis1@ford.com<br>To: rules-users@lists.jboss.org<br><br>
        <style>
.ExternalClass .EC_hmmessage P
{padding-right:0px;padding-left:0px;padding-bottom:0px;padding-top:0px;}
.ExternalClass BODY.EC_hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>

        <div dir="ltr" align="left"><span class="EC_EC_EC_208223809-11042008"><font color="#0000ff" face="Arial">In essence, yes. Have a look at "update" in the 
        manual (and a read on Shadow Facts will probably be useful 
        too).</font></span></div><br>
        <blockquote style="margin-right: 0px;">
          <div class="EC_EC_EC_OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
          <hr>
          <font face="Tahoma"><b>From:</b> rules-users-bounces@lists.jboss.org 
          [mailto:rules-users-bounces@lists.jboss.org] <b>On Behalf Of 
          </b>Jonathan Guéhenneux<br><b>Sent:</b> 11 April 2008 
          10:24<br><b>To:</b> Rules Users List<br><b>Subject:</b> RE: 
          [rules-users] Synch Business Object / Working 
          Memory<br></font><br></div>
          <div></div>yes, i made a mistake. its a.setE(...) and not 
          c.setE(...).<br><br>I don't call update. If I dont call update, 
          properties of an object are just read one time for all 
          rules?<br><br><br>
          <blockquote>
            <hr>
            Subject: RE: [rules-users] Synch Business Object / Working 
            Memory<br>Date: Fri, 11 Apr 2008 09:47:43 +0100<br>From: 
            manstis1@ford.com<br>To: rules-users@lists.jboss.org<br><br>
            <style>
.ExternalClass .EC_hmmessage P
{padding-right:0px;padding-left:0px;padding-bottom:0px;padding-top:0px;}
.ExternalClass BODY.EC_hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>

            <div dir="ltr" align="left"><span class="EC_EC_EC_EC_287464408-11042008"><font color="#0000ff" face="Arial">I 
            guess the example is a simplification as "c" (in RHS) has not been 
            bound to a fact.</font></span></div>
            <div dir="ltr" align="left"><span class="EC_EC_EC_EC_287464408-11042008"><font color="#0000ff" face="Arial"></font></span>&nbsp;</div>
            <div dir="ltr" align="left"><span class="EC_EC_EC_EC_287464408-11042008"><font color="#0000ff" face="Arial">Anyway, that aside, do you call "update" to ensure WM 
            knows of changes to facts otherwise properties need to be 
            "time-constant" which in your example they are 
            not.</font></span></div><br>
            <blockquote style="margin-right: 0px;">
              <div class="EC_EC_EC_EC_OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
              <hr>
              <font face="Tahoma"><b>From:</b> rules-users-bounces@lists.jboss.org 
              [mailto:rules-users-bounces@lists.jboss.org] <b>On Behalf Of 
              </b>Jonathan Guéhenneux<br><b>Sent:</b> 11 April 2008 
              09:34<br><b>To:</b> Rules Users List<br><b>Subject:</b> 
              [rules-users] Synch Business Object / Working 
              Memory<br></font><br></div>
              <div></div>Hi,<br><br>I have two rules :<br><br>rule "rule 1 - 
              1"<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; salience 
              90<br>&nbsp;&nbsp;&nbsp; ruleflow-group 
              "rfg1"<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; a : A(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; eComputed == "false",<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c &lt; 
              15,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; d 
              &gt;= 75)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              <br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; c.setE(0);<br>end<br><br><br><br>rule "rule 1 - 
              2"<br><br>&nbsp;&nbsp;&nbsp; salience 10<br>&nbsp;&nbsp;&nbsp; 
              ruleflow-group "rfg1"<br>&nbsp;&nbsp;&nbsp; 
              when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; a : 
              A(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              eComputed == "false",<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; c &gt;= 15,<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; d &gt;= 
              75)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 
              then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              c.setE(1);<br>end<br><br><br><br>and part of the corresponding 
              business code :<br><br>public class A {<br><br>&nbsp;&nbsp;&nbsp; 
              ...<br><br>&nbsp;&nbsp;&nbsp; public String 
              getEComputed(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
              if(eComputed)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 
              return "true";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
              else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; return 
              "false";<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
              ...<br><br>&nbsp;&nbsp;&nbsp; public void setE(int 
              e){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.e = 
              e;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; eComputed = 
              true;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
              ...<br><br>}<br><br><br><br>so, I expected that if the first rule 
              is activated, the second won't be. But according to my tests, the 
              two rule can be fired on the same object A.<br>While debugging, I 
              noticed the getEComputed method was only called once. I suppose 
              that I should write this :<br><br><br>rule "rule 1 - 
              1"<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; salience 
              90<br>&nbsp;&nbsp;&nbsp; ruleflow-group 
              "rfg1"<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; a : A(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; eComputed == "false",<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c &lt; 
              15,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; d 
              &gt;= 75)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              <br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; c.setE(0);<br>&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 
              c.setEComputed("true);<br>end<br><br><br><br>rule "rule 1 - 
              2"<br><br>&nbsp;&nbsp;&nbsp; salience 10<br>&nbsp;&nbsp;&nbsp; 
              ruleflow-group "rfg1"<br>&nbsp;&nbsp;&nbsp; 
              when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; a : 
              A(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              eComputed == "false",<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; c &gt;= 15,<br>&nbsp;&nbsp;&nbsp; 
              &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; d &gt;= 
              75)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 
              then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
              c.setE(1);<br>&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 
              c.setEComputed("true);<br>end<br><br>But I would prefer another 
              solution. Thanks for help.<br><br>
              <hr>
              Plus de 15 millions de français utilisent Windows Live Messenger ! 
              <a href="http://www.windowslive.fr/messenger/" target="_blank">Téléchargez Messenger, c'est gratuit !</a> 
            </blockquote></blockquote><br>
          <hr>
          Plus de 15 millions de français utilisent Windows Live Messenger ! <a href="http://www.windowslive.fr/messenger/" target="_blank">Téléchargez 
          Messenger, c'est gratuit !</a> </blockquote></blockquote><br>
      <hr>
      Tous vos amis discutent sur Messenger, et vous ? <a href="http://www.windowslive.fr/messenger/" target="_blank">Téléchargez 
      Messenger, c'est gratuit !</a> </blockquote></blockquote><br>
  <hr>
  Tous vos amis discutent sur Messenger, et vous ? <a href="http://www.windowslive.fr/messenger/" target="_blank">Téléchargez Messenger, 
  c'est gratuit !</a> </blockquote>
</blockquote><br /><hr />Discutez gratuitement avec vos amis en vidéo !  <a href='http://www.windowslive.fr/messenger/' target='_new'>Téléchargez Messenger, c'est gratuit !</a></body>
</html>