Вам просто нужны соответствующие переходы в каждом подпотоке-состоянии в потоке вызовов, чтобы делать то, что вы хотите.Идентификатор конечного состояния в вашем подпотоке - это то, что будет использоваться в качестве идентификатора события, на который вы можете перейти в потоке вызовов.
Подпоток можно рассматривать как ветвь выполнения.Поэтому, когда ваш подпоток завершен, управление возвращается обратно в поток вызова.Думайте о своем конечном состоянии как о выражении возврата (и об атрибуте id как о возвращенном значении - вы также можете установить выходные атрибуты, но это здесь не важно).
Когда ваш подпоток завершается, управление возвращается обратно в вызывающий поток.Вызывающий поток должен определить переход, который определяет, как обрабатывать это событие.Идентификатор события, который вы увидите, является идентификатором конечного состояния в вашем подпотоке.
Таким образом, в вашем подпотоке, если у вас есть следующее конечное состояние:
<end-state id="back"/>
Затем вы можете обработатьэтот переход в потоке, который вызвал подпоток:
<subflow-state id="do-some-sub" flow="some-sub">
< ... input variables, expressions, etc ... />
<transition on="back" to="some-state"/>
</subflow-state>
Обратите внимание, что some-state здесь также может быть конечным состоянием.Ваша ситуация звучит так, как будто у вас есть основной поток, который вызывает подпоток, который, в свою очередь, вызывает другой подпоток.Таким образом, вы бы хотели, чтобы some-state был конечным состоянием, которое затем обрабатывалось бы его вызывающим потоком (в вашем случае «основным» потоком).