我有一个循环,该循环按顺序运行三个流引用。至少那是计划。在调试器中运行,处理以以下意外顺序进行:
- 第一个流ref(a)
- 第二个流ref(b)
- 流量A 的第一个组成部分
- 第三flow-ref(c)
- 流B流的第一个组成部分
- 流量的第二个组成部分
- 流C 的第一个组成部分
- 流量B 的第二个组成部分
- 流动A的第三个组成部分...现在事情爆炸(在流的第一次),因为没有预期有效载荷
我将处理策略从隐式更改为"同步",没有明显的更改。
发生了什么事?
<flow name="Loop_until_successfull" doc:name="Loop_until_successfull" processingStrategy="synchronous">
<flow-ref name="A" doc:name="Go to A"></flow-ref>
<flow-ref name="B" doc:name="Go to B"></flow-ref>
<flow-ref name="C" doc:name="Go to C"></flow-ref>
</flow>
将" loop_until_successful"流更改为同步只能确保呼叫" loop_until_succescessful"的调用是同步处理的,不一定是任何其他流动的流程。您需要更改由" LOOP_UNTIL_SUCCESCESSFUL"调用的每个流,以同步处理,以确保您在调用下一个流之前从每个呼叫中恢复响应。如果执行此操作,则LOOP_UNTIL_SUCCESCESSFUL(我现在致电L.U.S)致电A,等待响应,然后致电B,等待响应,然后致电C。调用A,然后使用有效载荷立即移动到B,而不是等待A。