我有一个小问题我目前无法解决。在 BPEL 中,我想创建一个 onAlarm eventHandler,它会立即触发(即“for”元素设置为“PT0S”)并每 2 秒重复一次。此事件处理程序应包含一个计数器,该计数器在每次警报触发时递增。
问题是:如何初始化计数器?如果变量将在 onAlarm 范围内初始化,则该值将不再增加。在“正常”控制流中,该值也无法初始化,因为如果进程或 onAlarm 范围首先运行,则未定义该值。所以我会时不时地得到一个 uninitializedVariable 异常。
我的解决方案是不在进程范围内也不在 onAlarm 范围内初始化变量,而是创建一个 faultHandler ,其中将初始化变量,然后执行 onAlarm 流程。问题是每个 uninitializedVariable 执行现在都会被这个 faultHandler 捕获,并且可能还有另一个。
那么是否有另一种可能性来处理这个问题,或者我可以以某种方式找出哪个变量没有正确初始化,以便 faultHandler 可以获得两个控制流?
该解决方案应该适用于每个 BPEL 引擎。
谢谢,迈克尔