Написать запрос и пользовательскую функцию в Esper

Я пытаюсь создать заявление EPL, которое покажет, возможен ли заказ или нет.

Есть два события, EventA(обработано) и EventB(не обработано).

создать схему EventA (тип string, процент Completed integer);
создать схему EventB(тип 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 и "type" вместо целого результата, а также я хочу, чтобы запрос возвращал FALSE и "type", когда a.percentCompleted < 20.

1 ответ

Как долго процент завершения должен оставаться ниже 20, чтобы он указывал ЛОЖЬ? Или здесь идея получить ЛОЖЬ каждый раз? В любом случае вам будет проще всего написать второй EPL и подключить того же слушателя. Либо так, либо напишите запрос как объединение.

Другие вопросы по тегам