我正在尝试让 BPEL foreach 完成条件工作。因此我做了一个非常简单的测试用例。我有一个 foreach 循环等待 $Counter 秒,然后将 $Counter 值分配给输出。因此,在 4 个循环和属性“parallel”设置为 no 的情况下,我等待 10 秒(1 + 2 + 3 + 4)并得到响应“1234”。使用 "parallel" = yes 我等待 4 秒(由于并发行为)并得到相同的结果。
现在我添加完成条件。第 79 行http://pastebin.com/MbLMcNag
规范说:
没有 a 的活动在其所有子项都完成后完成。可以选择指定该元素以防止某些子项执行(在串行情况下),或强制提前终止某些子项(在并行情况下)。
所以我希望只得到“12”作为结果,并在顺序情况下等待 3 秒,在并行情况下等待 2 秒。但我总是得到“1234”并等待 10 / 4 秒。所以完成条件完全被忽略了。你能告诉我我做错了什么吗?
我使用在 Tomcat 上运行的 Apache ODE 1.3.5。
这是完整的 bpel 流程: http ://pastebin.com/MbLMcNag