[rules-users] Is there a better way?

Dirk Bergstrom dirk at juniper.net
Mon Jan 28 16:42:27 EST 2008


On 01/26/08 03:32, someone claiming to be Edson Tirelli wrote:
>    This should work:
> $rli_list : RecordSet( this != $npi.relatedRLIs )

And it does, thanks very much.  I could swear I tried that, but I guess not.
Foolish me.

> 2008/1/25, Dirk Bergstrom <dirk at juniper.net <mailto:dirk at juniper.net>>:
> 
>     I collect objects of type RLI that are related to instances of type
>     NPI, and
>     "attach" them to their NPIs, and (in a later agenda group) collect
>     subsets of
>     RLIs based on attributes of RLIs, NPIs, and other objects.  In the
>     first agenda
>     group, I need to update() the NPI object after the new list of RLIs
>     is attached,
>     but I only want to do this when a *new* list is attached.
> 
>     The only way I can find to do this requires an eval.  Is there a
>     better way?
> 
>     Here's the rule that I have now.  This works:
> 
>     rule "RLIs for NPI"
>     agenda-group "010"
>     lock-on-active true
>     salience 50
>     when
>     $npi : NPIRecord( )
>     $rli_list : RecordSet( eval( !
>     $rli_list.equals($npi.getRelatedRLIs())) ) from
>       collect( RLIRecord( npi_program == $npi.synopsis ) )
>     then
>     $npi.setRelatedRecords($rli_list, DataSource.RLI);
>     update($npi);
>     end
> 
>     I'd like to write something like this:
> 
>     ...
>     $rli_list : RecordSet( $rli_list != $npi.relatedRLIs ) from
>     ...
> 
>     But that doesn't compile.

-- 
Dirk Bergstrom               dirk at juniper.net
_____________________________________________
Juniper Networks Inc.,          Computer Geek
Tel: 408.745.3182           Fax: 408.745.8905



More information about the rules-users mailing list