J'ai deux tables de décision guidées dans un projet. Mon exigence est d'exécuter seulement les règles qui appartiennent à une table de décision à un moment donné. J'ai essayé d'utiliser RuleNameEndsWithAgendaFilter ("certains suffixes") avec la classe FireAllRulesCommand mais le serveur Kie ne filtre pas les règles basées sur le filtre AgendaFilter passé. Il court toutes les règles à chaque fois.Drools Kie Server ignorant AgendaFilter
Drools Workbench version 7.2.0.Final et Drools Kie Serveur version 7.2.0.Final.
Ci-dessous est l'extrait de code pour le même:
KieServicesConfiguration configuration = KieServicesFactory.newRestConfiguration(serverUrl, user, password);
Set<Class<?>> allClasses = new HashSet<Class<?>>();
allClasses.add(OrderItem.class);
configuration.addExtraClasses(allClasses);
configuration.setMarshallingFormat(MarshallingFormat.JAXB);
OrderItem oi = new OrderItem("Mobile", 7000.00, 0.00, "");
KieServicesClient client = KieServicesFactory.newKieServicesClient(configuration);
// work with rules
List<ExecutableCommand<?>> commands = new ArrayList<ExecutableCommand<?>>();
BatchExecutionCommandImpl executionCommand = new BatchExecutionCommandImpl(commands, "defaultKieSession");
InsertObjectCommand insertObjectCommand = new InsertObjectCommand();
insertObjectCommand.setOutIdentifier("orderItem");
insertObjectCommand.setObject(oi);
FireAllRulesCommand fireAllRulesCommand = new FireAllRulesCommand();
fireAllRulesCommand.setAgendaFilter(new RuleNameEndsWithAgendaFilter("MyRuleSuffix", true));
commands.add(insertObjectCommand);
commands.add(fireAllRulesCommand);
RuleServicesClient ruleClient = client.getServicesClient(RuleServicesClient.class);
ServiceResponse<String> response = ruleClient.executeCommands(containerId, executionCommand);
System.out.println(response.getResult());
Comment peut-on dire si c'est correct ou non, sauf si vous fournissez le code du filtre d'agenda? En outre, les lignes supérieures de votre table de règles, peut-être en tant que texte CSV. – laune
Il s'agit de l'implémentation par défaut fournie avec le binaire drools-core (version: 7.2.0.Final) –