2016-05-08 2 views
0

Je suis nouveau à baver table de décision, donc ma question peut être invalide. Dans ma table de décision, j'utilise "in" dans la colonne de condition. Exampe: j'ai classe Etudiant et il y a une autre classe UniversityConstant. Dans la classe UniversityConstant, il existe un tableau de code de sujet de chaîne: public static final String [] subjectCode = {"150", "920", "930", "940", "154"}; enter image description herecomment utiliser tableau de chaîne comme condition dans la table de décision Drools?

Dans ce cas, mon état ne fonctionne pas correctement (photo ci-dessus: ne fonctionne pas). Au lieu d'utiliser la constante de tableau de chaînes de classe Java si j'utilise une chaîne de code de sujet direct que cela fonctionne (image ci-dessous: travail).

enter image description here

Dans mon projet, il y a beaucoup de tableau de chaînes, il est donc impossible de les copier-coller dans Excel table de décision. Même dans le cas où j'utilise une constante de chaîne dans la classe UniversityConstant qui représente tout le code sujet comme public static final Chaîne subjectCodeStr1 = "\" 155 \ ", \" 920 \ ", \" 930 \ ", \" 940 \ ", \" 154 \ "" OU public static final Chaîne subjectCodeStr2 = "155,920,930,940,154"; que aussi ça ne marche pas. Ma question est là une façon d'utiliser la chaîne de caractères string constante ou simple qui représente le tableau de chaînes de Java dans la table de décision.

Répondre

1

Vous pouvez déclarer les ensembles constants

public static final List<String> subjectCodes = 
    Arrays.asList("155","920","930","940","154"); 

et utiliser

...getPrimarySub() memberOf $param 
... 
UniversityConstamt.subjectCodes 
+0

Ne pas envoyer merci, mais accepter la réponse pour que les gens connaissent la situation. - Lisez la documentation de Drools. - Pas spécifique aux tables de décision, mais probablement utile: google "Design Patterns dans les systèmes de production", devrait être situé sur une page redhat.com. – laune