У меня есть состояние действия, которое оценивает выражение и затем переходит в другие состояния в зависимости от результата. Одним из состояний результата является состояние подпотока, которое передает управление другому потоку, например;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail" />
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Как вы можете видеть, я могу передать входные данные в подпоток через тег input, но у меня вопрос, как я могу указать и передать дополнительные входные данные, которые я хочу представить, если и только если состояние subflow вызывается из перехода WORKFAIL ? Предположим, что состояние подпотока «fixFail» может быть вызвано из других состояний действия.
Я пробовал что-то похожее на следующее без эффекта;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail">
<attribute name="newInput" value="3000" type="java.lang.Integer" />
</transition>
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<input name="someNumber2" value="flowScope.newInput" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>