[rules-users] How to inovke a Service...

Holla Sachin-a23031 sachinholla at motorola.com
Fri Feb 9 00:18:55 EST 2007


hi James,
i believe event.getActivation().getTuple().getFactHandles() should do...
 
holla

 
________________________________

From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of James Depaul
Sent: Friday, February 09, 2007 3:59 AM
To: Rules Users List
Subject: Re: [rules-users] How to inovke a Service...



Thanks Edson - 

Two questions:

1) Is using Globals (as you mention below) same as using
WorkingMemory.setApplicationData(myService) - or is this yet another way
to do it. Is there a difference in terms of efficiency?

2) Is there a way to get to the Fact that fired the event from the Event
object passed in the AgendaEventListener.afterActivationFired(Event
event) 

>From an efficiency and performance standpoint, which way would you
recommend pursuing: EventListener invoking a service or service invoked
from global Helper class in current WorkingMemory? Any guidance there
would be appreciated.

Thanks,
James



 Edson Tirelli <tirelli at post.com>




				Edson Tirelli <tirelli at post.com> 
				Sent by:
rules-users-bounces at lists.jboss.org 

				02/08/2007 02:31 PM 
	
	Please respond to
Rules Users List <rules-users at lists.jboss.org>

 

To

Rules Users List <rules-users at lists.jboss.org>	


cc

	


Subject

Re: [rules-users] How to inovke a Service...	
	 	

   James,

  The consequence and function blocks in a DRL file are transformed 
into a plain java method. It means you can do whatever you want and java

allows. So, if you are for instance inside an application server, you 
cat get your JNDI context from there and do your stuff. Although, it is 
usually better to have helper classes doing procedural code and keep the

consequence code clean to make rules maintance easier.

  So, for exaple, you can have a helper class that has the actual code 
to call the service you want and set it as a global for your rulebase. 
Then in the consequence you call this class method with the given 
paramenters.
  Example:

package my.package;

global my.service.package.ServiceInvoker invoker;

rule "Cheese in stock"
when
    $p : Person( $likes : likes )
    $c : Cheese( type == $likes, quantity > 0 )
then
   invoker.sendMessageToPerson( $p, "Your prefered cheese 
("+$c.getType()+") is back in stock;" );
end

  Inside your ServiceInvoker class you create the code to actually send 
the message (procedural code).

  This is only one way of doing it, but it is usually what is done.

  Hope it helps.

  []s
  Edson

jdepaul wrote:

>I've done a little research since my first post and have been
experimenting
>with the AgendaEventListener interface...   I can register a component
in
>WorkingMemory that will 'listen' and be notified afterEventFired event
-
>this could be a good place from which to invoke my serivce, however,
the
>problem I'm having is that the event delivered doesn't seem to pass the
>original Fact that caused the Event to fire, only the rule that got
>activated is sent...  How could I get the Fact that caused this event
to
>fire from that event object?
>
>James
>
>
>  
>


-- 
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3124-6000
Mobile: +55 11 9218-4151
JBoss, a division of Red Hat @ www.jboss.com


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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070209/532057cf/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 105 bytes
Desc: graycol.gif
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20070209/532057cf/attachment.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 45 bytes
Desc: ecblank.gif
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20070209/532057cf/attachment-0001.gif 


More information about the rules-users mailing list