Sorry, my previous suggestion will count the same process name multiple times. There are a few ways to avoid it. I would probably use a helper fact:

rule XYZ
when
$p : Process( $name : name )
not( ProcessCount( name == $name ) )
Number( $count : intValue) from accumulate(
$i : Process( name == $name, this != $p ),
count( $i ) )
then
System.out.println( "There are "+$count+" instances of processes named "+$name );
insert( new ProcessCount( $name, $count ) );
end

   Hope it helps,
    Edson

2008/1/29, Edson Tirelli <tirelli@post.com>:

   Try that:

rule XYZ
when
    $p : Process( $name : name )
    Number( $count : intValue) from accumulate(
                 $i : Process( name == $name, this != $p ),
                  count( $i ) )
then
   System.out.println( "There are "+$count+" instances of processes named "+$name );
end
 
   []s
   Edson


2008/1/29, cfili <cfilippelli@cerner.com>:

I am having a hard time finding an example of what I am trying to do, so
maybe someone here could help me.  What I am trying to do is determine how
many facts fall into the same category.

My facts are 'processes' and one of their attributes is a 'name'.  My goal
is to determine how many processes with the same name are running.  The
problem is I do not know ahead of time the process names available, I want
to determine that set at runtime.  Also, once I determine the count for a
given name, I do not want to run it again for the other processes that fall
in that name category.

I think "from collect" is probably what I want to use here, but I am not
sure how to grab the names in my Pattern from the fact I am currently
iterating on.

Thanks.
--
View this message in context: http://www.nabble.com/Count-matching-facts-tp15160392p15160392.html
Sent from the drools - user mailing list archive at Nabble.com.

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
  Edson Tirelli
  JBoss Drools Core Development
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com



--
  Edson Tirelli
  JBoss Drools Core Development
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com