次のような一連のイベントがあります。
- イベント A がシーケンスを開始します
- 複数のイベント B が発生する
- イベント C はシーケンスを停止します
[すべての A -> (B から C) まで] というパターンでそれを行いましたが、正しいようです (どう思いますか?)。しかし、シーケンスで発生した B イベントから情報を取得して集計するのに苦労しています。単純にカウントといくつかの avgs を取得したいのですが、何も機能していないようです (B イベントが存在する場合でも、example1 は 1 を返し、example 2 は 0 を返し、example 3 は null を返します)。
insert into CreateMeasurement
select
C.source as source,
"carDrivingAnalyse" as type,
C.time as time,
{
"example1", count(*),
"example2", count(B),
"example3", B.countOf()
} as fragments
from pattern [
every A = EventCreated(
type = "Ignition",
getString(A, "Ignition.status") = "ON")
-> (
B = EventCreated(
type = "DrivingEvent",
source = A.source,
getString(B, "DrivingEvent.prop1") = getString(A, "Ignition.prop1"),
getNumber(B, "DrivingEvent.prop2") = getNumber(A, "Ignition.prop2"))
until C = EventCreated(
type = "Ignition",
getString(C, "Ignition.status") = "OFF",
source = A.source,
getString(C, "Ignition.prop1") = getString(A, "Ignition.prop1"),
getNumber(C, "Ignition.prop2") = getNumber(A, "Ignition.prop2"))
)
]