commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul Akolkar <rahul.akol...@gmail.com>
Subject Re: [scxml] How to retrieve the triggering event in a custom action
Date Thu, 16 Sep 2010 14:38:07 GMT
2010/9/16 Thiébault Benoît <dev@artenum.com>:
> Hi everyone,
>
> I'm using SCML with custom actions. I followed the Custom Actions tutorial successfully
(http://commons.apache.org/scxml/guide/custom-actions.html), but the Hello action only uses
parameters provided in the SCXML file.
>
> What I want to do is to provide a payload to the triggering event and retrieve it in
my custom action. Is this possible ?
>
> // In the method firing the event
> TriggerEvent[] evts = {new TriggerEvent(event.getId(),
>           TriggerEvent.SIGNAL_EVENT, myPayload)};
>       try {
>           engine.triggerEvents(evts);
>       } catch (ModelException me) {
>           logError(me);
>       }
>
> // In the custom action class
> public void execute(EventDispatcher evtDispatcher, ErrorReporter errRep, SCInstance scInstance,
Log appLog, Collection derivedEvents) throws ModelException, SCXMLExpressionException {
>       // Here I want to retrieve myPayload
<snip/>

When using v0.9, for the above external trigger:

  Object payload = scInstance.getRootContext().get("_eventdata");

When processing internal / derived events, the following:

  Object payload =
scInstance.getRootContext().get("_eventdatamap").get("my.event.name");

For examples which may illustrate where the payload resides in the
root context, see the eventdata-*.xml files here (this may help to see
how the values may be retrieved programmatically within a custom
action):

  http://svn.apache.org/repos/asf/commons/proper/scxml/tags/SCXML_0_9/src/test/java/org/apache/commons/scxml/env/jexl/

-Rahul


>   }
>
> Kind regards
> Ben
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message