On Mon, Mar 23, 2009 at 7:42 AM, Armel SORO <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
