You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Armel SORO <ar...@gmail.com> on 2009/03/23 12:42:22 UTC
[SCXML] invoke behavior
Hi everyone,
I'm currently facing an issue using <invoke> element, not being called.
Below is my case:
<state id="S" initial="S1">
<state id="S1">
<onentry><log expr="'loop = '+loop"/></onentry>
<invoke src="SRC" targettype="vxml">
<param name="loop" expr="loop"/>
</invoke>
<transition event="SRC.invoke.done" target="S2"/>
</state>
<state id="S2">
<transition event="goToNext" cond="loop > '1'" target="S1">
<assign name="loop" expr="loop-1"/>
</transition>
<transition event="goTonext" target="S3"/>
</state>
<final id="S3"/>
</state>
The first invocation of 'SRC' is done without any problem, making the state
machine switch from 'S1' to 'S2'.
Once triggered the event "goTonext" while in 'S2', the state machine reaches
'S1' after updating the variable 'loop' but I don't know why the <invoke>
element is not executed once again.
Any reason behind this? I found out that <invoke> occurs only in atomic
states, but this did not help in that case.
Thanks in advance for your help!!!
--
Armel
Re: [SCXML] invoke behavior
Posted by Rahul Akolkar <ra...@gmail.com>.
On Mon, Mar 23, 2009 at 7:42 AM, Armel SORO <ar...@gmail.com> wrote:
> Hi everyone,
>
> I'm currently facing an issue using <invoke> element, not being called.
> Below is my case:
>
> <state id="S" initial="S1">
>
> <state id="S1">
> <onentry><log expr="'loop = '+loop"/></onentry>
> <invoke src="SRC" targettype="vxml">
> <param name="loop" expr="loop"/>
> </invoke>
> <transition event="SRC.invoke.done" target="S2"/>
> </state>
>
> <state id="S2">
> <transition event="goToNext" cond="loop > '1'" target="S1">
> <assign name="loop" expr="loop-1"/>
> </transition>
> <transition event="goTonext" target="S3"/>
> </state>
>
> <final id="S3"/>
>
> </state>
>
> The first invocation of 'SRC' is done without any problem, making the state
> machine switch from 'S1' to 'S2'.
> Once triggered the event "goTonext" while in 'S2', the state machine reaches
> 'S1' after updating the variable 'loop' but I don't know why the <invoke>
> element is not executed once again.
> Any reason behind this?
<snip/>
Nothing jumps out at me in the above example. The Invoker registered
with the state chart instance after the first entry into S1 should be
removed on exit, so the second entry into S1 should create a new
instance for the <invoke>. ISTR trying similar things with @targettype
scxml (though using a different @targettype shouldn't affect this
behavior).
I suspect we will need to look into more details, such as the smallest
JUnit test case you can create to demonstrate this.
> I found out that <invoke> occurs only in atomic
> states, but this did not help in that case.
>
<snap/>
Yup, only in atomic states.
-Rahul
> Thanks in advance for your help!!!
>
> --
> Armel
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org