0
我对流口水有点新。我在我的drl文件中有两条规则,即DateYYYYMMDD和TotalChargesAndTax。我使用以下语法从我的主要方法执行2个规则。在流口水中执行多个规则5.x
Command<?> syntacticValidation = new FireAllRulesCommand(
new RuleNameEqualsAgendaFilter("DateYYYYMMDD"));
Command<?> semanticValidation = new FireAllRulesCommand(
new RuleNameEqualsAgendaFilter("TotalChargesAndTax"));
List<Command> commands = new ArrayList<Command>();
commands.add(semanticValidation);
commands.add(syntacticValidation);
session.execute(CommandFactory
.newBatchExecution(commands));
但是当我运行我的应用程序,只有TotalChargesAndTax规则执行,DateYYYYMMDD规则被跳过。如果我互换在ArayList命令对象的位置,如下图所示,
commands.add(syntacticValidation);
commands.add(semanticValidation);
则DateYYYYMMDD规则被执行并且TotalChargesAndTax规则被跳过。有没有办法执行这两个规则并执行规则的后果?到目前为止,根据哪个命令在数组列表中首先执行只有一个结果。
我刚碰巧看到你今天的回复。当我发布上述问题时,这是我与Drools的第一天。你所说的正是我几天后意识到的。为了有效地定义我的事实模型,我已经走了很长的路,所以我很容易编写规则。虽然我有一个关于从Windows Shell编译.drl文件的新问题。你能帮助我吗? :) ..这里是问题的链接:-http://stackoverflow.com/questions/7992569/how-to-compile-a-drl-file-through-an-ant-build-script – CKing