CEP 列表作为单个项目(遍历托管对象)

CEP List as single items (iterate over managed obejects)

在 CEP 中,我可以将托管对象作为列表获取,例如使用函数“...ManagedObjectByType”。获取列表后,我使用 AllOf 函数过滤列表。现在,我想将列表中的每个托管对象放入一个新流({A,B,C} - > A,B,C),因此它们彼此分开以便生成例如警报下一阶段。不幸的是,我不知道如何从列表中生成单个事件(托管对象)。有人可以帮忙吗?

最好的, 妮可

你可以这样做:

create schema Device as ManagedObject;

create schema CollectedDevices(
    devices List
);

create schema SingleDevice(
    device Device
);

insert into CollectedDevices
select
    findAllManagedObjectByFragmentType("c8y_IsDevice") as devices
from pattern[timer:interval(10 seconds)];

insert into SingleDevice
select
    singleDevice as device
from 
    CollectedDevices as devices unidirectional,
    CollectedDevices[devices@type(Device)] as singleDevice;

然后将为列表中的每个元素触发最后一个语句。

您可以在此处找到连接的 esper 文档: http://esper.espertech.com/release-5.4.0/esper-reference/html/epl_clauses.html#epl-join