Hi there, I have an orthogonal state chart implemented with SCXML, I have a SLOT and TASK defined in the parallel states. MSlotInitState to MSlotHeldState, MSlotQueuedState, MSlotLockedState is happening and in the MSlotLockedState I am trying to - <state id="MSlotLockedState"> - <onentry> <log expr="'Slot Locked State'" /> </onentry> <transition event="SlotReadyToBeHeldEvent" target="MSlotHeldState.aquireSlot" /> <transition event="TimerExpiredEvent" cond="_eventdata.timeAbs eq false" target="MSlotQueuedState.queueSlot" /> <transition event="TimerExpiredEvent" cond="_eventdata.timeAbs eq true" target="MSlotCancelledState.cancelSlot" /> <transition event="CancelEvent" target="MSlotCancelledState.freeSlot" /> </state> Move to MSlotHeldState.acquireSlot which is a method call within MSlotHeldState. Here the transition is not happening. Eventhough the event is triggered from server side. I am able to go from Init to the next transitions like MSlotHeldState, MSlotLockedState, MSlotqueuedState. Next level of transitions are not happening at all. Is there anything I am missing in the SCXML please help me. Thanks John
<?xml version="1.0"?> <!-- Used for comparison with custom-hello-world.xml by CustomActionTest.java in model package --> <scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:my="http://my.custom-actions.domain/CUSTOM" version="1.0" initialstate="testMain"> <state id="testMain"> <parallel> <state id="slotState"> <initial> <transition> <target next="MSlotInitState" /> </transition> </initial> <state id="MSlotInitState"> <onentry> <log expr="'Slot Init State'" /> </onentry> <transition event="CreateATaskEvent" cond="_eventdata.slotAvailable = true and _eventdata.immediate" target="MSlotHeldState.aquireSlot" /> <transition event="CreateATaskEvent" cond="!_eventdata.slotAvailable and !_eventdata.immediate" target="MSlotQueuedState.queueSlot" /> <transition event="CreateATaskEvent" cond="_eventdata.slotAvailable and !_eventdata.immediate" target="MSlotLockedState.lockSlot"/> </state> <state id="MSlotHeldState"> <onentry> <log expr="'Slot Held State'" /> </onentry> <transition event="JobCompleteEvent" target="MSlotFreedState.releaseSlot" /> </state> <state id="MSlotQueuedState"> <onentry> <log expr="'Slot Queued State'" /> </onentry> <transition event="TimerExpiredEvent" cond="_eventdata.timeAbs = true and !_eventdata.slotAvailable" target="MSlotCancelledState.cancelSlot" /> <transition event="CancelEvent" target="MSlotCancelledState.cancelSlot" /> <transition event="SlotFreeEvent" target="MSlotLockedState.lockSlot" /> </state>
<state id="MSlotLockedState"> <onentry> <log expr="'Slot Locked State'" /> </onentry> <transition event="SlotReadyToBeHeldEvent" target="MSlotHeldState.aquireSlot" /> <transition event="TimerExpiredEvent" cond="_eventdata.timeAbs eq false" target="MSlotQueuedState.queueSlot" /> <transition event="TimerExpiredEvent" cond="_eventdata.timeAbs eq true" target="MSlotCancelledState.cancelSlot" /> <transition event="CancelEvent" target="MSlotCancelledState.freeSlot" /> </state> <state id="MSlotFreedState.releaseSlot"> <onentry> <log expr="'Slot Released State'" /> </onentry> </state> <state id="MSlotCancelledState.cancelSlot"> <onentry> <log expr="'Slot Cancelled State'" /> </onentry> </state> <state id="MSlotCancelledState.freeSlot"> <onentry> <log expr="'Slot Freed State'" /> </onentry> </state> <state id="MSlotQueuedState.queueSlot"> <onentry> <log expr="'Slot Queued State'" /> </onentry> </state> <state id="MSlotHeldState.aquireSlot"> <onentry> <log expr="'Slot Held State'" /> </onentry> </state> <state id="MSlotLockedState.lockSlot"> <onentry> <log expr="'Slot Locked State'" /> </onentry> </state> </state> <state id="taskState"> <initial> <transition> <target next="MTaskInitState" /> </transition> </initial> <state id="MTaskInitState"> <onentry> <log expr="'Task Init State'" /> </onentry> <transition event="SlotHeldEvent" cond="_eventdata.aquireTaskId eq AQUIREtaskId" target="MTaskFiredState.fireTask" /> <transition event="SlotHeldEvent" cond="_eventdata.releaseTaskId eq RELEASEtaskId" target="MTaskScheduledState.scheduleTask" /> <transition event="CreateSimpleTaskEvent" cond="!_eventdata.immediate" target="MTaskScheduledState.scheduleTask" /> </state> <state id="MTaskFiredState"> <onentry> <log expr="'Task Fired State'" /> </onentry> <transition event="JobCompleteEvent" target="MTaskCompleteState.completeTask" /> <transition event="JobAbortEvent" target="MTaskAbortState.abortTask" /> </state> <state id="MTaskScheduledState"> <onentry> <log expr="'Task Scheduled State'" /> </onentry> <transition event="TaskReadyToBeFiredEvent" target="MTaskFiredState.fireTask" /> <transition event="CancelEvent" target="MTaskCancelledState.cancelTask" /> <transition event="TimerExpiredEvent" target="MTaskCancelledState.cancelTask" /> </state> <state id="MTaskAbortState.abortTask"> <onentry> <log expr="'Task Aborted State'" /> </onentry> </state> <state id="MTaskCompleteState.completeTask"> <onentry> <log expr="'Task Completed State'" /> </onentry> </state> <state id="MTaskCancelledState.cancelTask"> <onentry> <log expr="'Task Cancelled State'" /> </onentry> </state> <state id="MTaskFiredState.fireTask"> <onentry> <log expr="'Task Fired State'" /> </onentry> </state> <state id="MTaskScheduledState.scheduleTask"> <onentry> <log expr="'Task Scheduled State'" /> </onentry> </state> </state> </parallel> </state> </scxml>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]