从客户端获取正在决策服务器上执行的触发规则名称(Redhat Decision Manager)。

问题描述 投票:0回答:1

我正在使用 REST api 在 Decision Server (Redhat Decision Manager 7.2) 上使用无状态 kie 会话执行规则。我目前正在获取触发规则的数量,但我也想获取这些规则的名称。这可能吗?

KieServicesConfiguration conf = KieServicesFactory.newRestConfiguration(URL, USER, PASSWORD);

List<GenericCommand<?>> commands = new ArrayList<GenericCommand<?>>();

commands.add((GenericCommand<?>)
KieServices.Factory.get().getCommands().newInsert(applicant, "applicant"));

commands.add((GenericCommand<?>)
KieServices.Factory.get().getCommands().newInsert(loan, "loan"));

commands.add((GenericCommand<?>)KieServices.Factory.get().getCommands().newFireAllRules("numberOfFiredRules"));

KieCommands kieCommands = KieServices.Factory.get().getCommands();

BatchExecutionCommand batchCommand = kieCommands.newBatchExecution(commands, "default-stateless-ksession");

ServiceResponse<ExecutionResults> executeResponse = ruleServicesClient
                .executeCommandsWithResults("loan-application_1.2.0", batchCommand);

System.out.println("Number of fired rules:" executeResponse.getResult().getValue("numberOfFiredRules"));
drools redhat business-rules kie redhat-brms
1个回答
0
投票

你必须使用 AgendaEventListener 来跟踪规则的执行情况。通过实现 org.kie.api.event.rule.AgendaEventListener。 界面,你可以捕捉这些细节。

© www.soinside.com 2019 - 2024. All rights reserved.