Drools 5.4.0- DSL结果的错误包含三个捕获,结合整数和字符串

时间:2012-07-26 13:29:41

标签: dsl drools rule-engine

我正在尝试编写用于处理邮件的DSL。我有几个结构使用下面的一个导致错误 -

来自DSL的

- [后果] []关于字段{bit}的验证失败,将字段{bit2}设置为“{field_value}”= System.out.println(“Test”);

在数码单反相机中 -    关于字段2设置字段39到“181”的验证失败

奇怪的是,以下工作正常

来自DSL的

- [后果] []关于字段{bit}的验证失败,将字段{bit2}设置为{field_value} = System.out.println(“Test”);

在数码单反相机中 -    关于字段2设置字段39到181的验证失败 (请注意“field_value”上删除的双引号)

我做错了吗? 。我正在使用Drools 5.4.0 Final。

谢谢!

规则编译错误:[规则名称='处理验证失败的授权事务']     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1344):on无法解析为某个类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1358):令牌“失败”时出现语法错误,;预期     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1366):无法解析为某种类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1369):重复的局部变量字段     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(21:1375):令牌“2”上的语法错误,;预期     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1450):on无法解析为某个类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1453):重复的局部变量验证     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1464):令牌“失败”时出现语法错误,;预期     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1472):无法解析为某种类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1475):重复的局部变量字段     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(22:1481):令牌“3”上的语法错误,;预期     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1556):on无法解析为某个类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1559):重复的局部变量验证     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1570):令牌“失败”时出现语法错误,;预期     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1578):无法解析为某种类型     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1581):重复的局部变量字段     defaultpkg / Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java(23:1587):令牌“4”上的语法错误,;预期

1 个答案:

答案 0 :(得分:0)

看起来drools以递归方式应用规则! 我在DSL中输入了 [后果] []关于字段{bit}设置字段{second_bit}到“{val}”验证失败= ...

但还有另外一个像这样的人 - [结果] []将字段{bit}设置为“{field_value}”= ...

所以drools匹配第一个条目的最后一部分到第二个的RHS!感谢drools.dump.dir选项,我可以看到发生了什么!