[rules-users] How to inovke a Service...
Edson Tirelli
tirelli at post.com
Fri Feb 9 08:16:32 EST 2007
James,
About globals, the concept is the same as the drools 2.x "Application
Data", but in 3.0 it is called global:
http://labs.jboss.com/file-access/default/members/jbossrules/freezone/docs/3.0.5/html/ch01s06.html#d0e719
http://labs.jboss.com/file-access/default/members/jbossrules/freezone/docs/3.0.5/html/ch03s03.html#d0e1532
[]s
Edson
Holla Sachin-a23031 wrote:
> 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
>
>
>
> Inactive hide details for Edson Tirelli <tirelli at post.com>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
>
>------------------------------------------------------------------------
>
>_______________________________________________
>rules-users mailing list
>rules-users at lists.jboss.org
>https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
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
More information about the rules-users
mailing list