Я пытаюсь написать правило слюни, которое проверяет, происходят ли два события из одного потока. У меня есть класс правил соответствия, который содержит логику (в рабочей памяти) для сравнения с событиями, поступающими из точки входа. все, что мне нужно, - это обнаружить появление двух событий, например, я хочу обнаружить, что произошло событие А и после этого произошло Б. Я написал эту роль в синтаксисе слюниКак выбрать 2 разных атрибута из события в Drools
$comrule : Comprules (pattern == "response" , isBefore == false)
Event (task == $comrule.antecedent) from entry-point StoreOne
Event (task == $comrule.consequent) from entry-point StoreOne
проблема в этом методе не работает. только один рабочий, когда я писал этот
Event (task == $comrule.antecedent) from entry-point StoreOne
not Event (task == $comrule.consequent) from entry-point StoreOne
Я прочитал документацию Drools, но я не мог найти решения этой проблемы любая помощь будет оценена
Невозможно сказать, почему вы не получите ожидаемого результата. Вам нужно предоставить полный пример. - Вы ввели два факта «Event» с правильными значениями для 'task' и были ли они в рабочей памяти одновременно? Если вторая версия шаблонов срабатывает, вы вставили первый, но еще не второй. – laune
это вход, который я вставил \t insertEvent (entryPointStoreOne, new Event(), "X", "8"); \t insertEvent (entryPointStoreOne, новое событие(), «Y», «9»); Comprules cr4 = новый Comprules(); \t cr4.setpattern («response»); \t cr4.setantecedent ("X"); \t cr4.setconsequent ("Y"); \t cr4.setanttimestamp (3); \t cr4.setconsimesptamp (4); \t cr4.settimespan (2); –