CEP列表作为单个项目(迭代管理的obejects)

时间:2018-06-04 06:01:36

标签: complex-event-processing cumulocity

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

最佳, 尼科

1 个答案:

答案 0 :(得分:2)

您可以这样做:

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