2017-01-20 6 views
0

Je travaille sur la création d'un CEP en utilisant Drools Fusion. J'ai deux classes d'événements ExpectedEvent et ActualEvent. Je dois m'assurer que les objets ActualEvent se produisent avant les objets ExpectedEvent. Cependant, je ne peux pas obtenir le avant le mot-clé pour fonctionner. C'est en mode flux.Drools Fusion 'variablename' inattendu

import hellodrools.ExpectedEvent 
import hellodrools.ActualEvent 

dialect "java" 

rule "On Time" 

when 
    ExpectedEvent($expectedtime : getStart_time()) from entry-point entry one 
    $actual:ActualEvent(this after[ 1m ] $expected) from entry-point entryone 

then 

    System.out.println("ON TIME expected time: " + $expectedtime + " actual time " + $actualtime); 

end 

En IntelliJ je continue à avoir des erreurs sur en disant '$ réelle' inattendue réelle $. Je ne peux pas résoudre cette erreur de syntaxe.

Répondre

0

Je ne pense pas que cela soit lié à IntelliJ, bien qu'IntelliJ ne semble pas signaler l'erreur correcte.

je crois que le problème réel est que from entry-point attend une chaîne de caractères ou un identifiant valide, qui sera utilisé pour l'ID de point d'entrée (qui est une chaîne)

Dans votre règle l'est pas « entry one » un identifiant valide car il contient un espace, et ce n'est pas un littéral String car il n'est pas entouré de guillemets (").

Vous pouvez essayer de remplacer from entry-point entry one

avec from entry-point "entry one"