AW: [rules-users] How to avoid circular rule activation fornoncircular problems?

Ralph Ammon ralph.ammon at lisytec.de
Fri Jul 25 04:17:44 EDT 2008


Sorry for the line breaks. Here I post my changes in a (hopefully) more readable format:

  rule "Calc StartTime with predecessors"
    when
      $t :     Task(predecessorCount > 0, $predecessors : predecessors )
      forall(  $succTask : Task( this == $t )
               $predTask : Task( this memberOf $predecessors, endTime > 0 ) )
      $endTime : Number() from accumulate  ( $p : Task() from $predecessors, 
                                             max($p.getEndTime()) )
      # new constraint
      Task( this == $t, eval($t.getStartTime() != $endTime.longValue()) )
    then
      $t.setStartTime( $endTime.longValue() );
      System.out.println( "Drools: " + $t.toString() + " has new StartTime" );
      # new update
      update( $t );
  end

Best regards
Ralph




More information about the rules-users mailing list