Список CEP как отдельные элементы (итерации по управляемым объектам) - PullRequest
0 голосов
/ 04 июня 2018

в CEP я могу получить управляемые объекты в виде списка, например, с помощью функции "... ManagedObjectByType".После получения списка я использую функцию AllOf для фильтрации списка.Теперь я хотел бы поместить каждый отдельный управляемый объект из списка в новый поток ({A, B, C} -> A, B, C), чтобы они были отделены друг от друга, чтобы генерировать, например, аварийные сигналы вследующий этап.К сожалению, я понятия не имею, как я могу создавать отдельные события (управляемые объекты) из списка.Может кто-нибудь помочь?

Бест, Нико

1 Ответ

0 голосов
/ 04 июня 2018

Вы можете сделать что-то вроде этого:

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

...