none
请教大家一个关于业务规则的问题 RRS feed

  • 问题

  • 我的问题是这样的,主要是关于RuleEngine里面Update方法的使用。

    我有这样一个场景。

    Rule1:

            if

               A(1).a=1

            then

               A(1).a=10

               update(A(1))

    Rule2:

           if

              A(1).a=10 And A(2).a=1

           then

              A(1).a=20

     

    注:其中A为一个对象,A(1).a=1的意思是对象A的一个实例ID为1的实例的属性a的值为1。

     

    我的问题是,当A(1).a=1满足条件时,将执行Rule1,把A(1).a的值改为10,并更新A(1)。但是当更新A(1)之后,不仅仅是A(1)的属性a的值被更新为10,连A(2)的属性a的值也被更新为10了。所以执行完Rule1以后,并不能触发Rule2。我想知道Update的作用是不是会把一个对象下面所有的实例都更新,而不仅仅是对一个对象下的某一个实例起作用?如果是这样的话,能不能做到只更新一个实例,而不更新一个对象呢?

    2008年9月10日 4:47