我正在尝试创建一个EPL语句,以显示订单是否可行。
有两个事件,EventA(已处理)和EventB(未处理)。
create schema EventA(type string,percentCompleted integer);
create schema EventB(type string);
该语句应根据元素的类型(字符串)匹配所有已处理的元素。结果应包含一个布尔值,指示是否应处理订单。
我有以下声明在成功匹配时返回true(并且可以下订单)。但是,当无法下订单时,我还想要返回错误。
此处测试案例:
http://esper-epl-tryout.appspot.com/epltryout/mainform.html
create schema EventA(type string, percentCompleted integer);
create schema EventB(type string);
@Name('Out') select * from pattern [every a=EventA -> every b=EventB(a.type = b.type AND a.percentCompleted > 20) ]
序列:
EventA={type="1",percentCompleted=0}
EventA={type="2",percentCompleted=0}
EventA={type="1",percentCompleted=20}
EventA={type="1",percentCompleted=40}
EventB={type="1"}
结果:(仅返回真实结果):
Out-output={a={EventA={type='1', percentCompleted=40}}, b={EventB={type='1'}}}
我希望我的陈述返回TRUE和"输入"而不是整个结果,我也希望查询返回FALSE和"键入"当a.percentCompleted< 20。
答案 0 :(得分:0)
完成百分比需要多长时间才能保持在20以下才能显示为FALSE?或者这个想法每次都是假的吗?无论哪种方式,您最简单的方法就是编写第二个EPL并附加相同的侦听器。要么是要么将查询写成连接。