Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Drools引导规则中使用条件逻辑(或NOT!运算符)?_Drools_Kie_Kie Workbench_Kie Wb_Kie Server - Fatal编程技术网

如何在Drools引导规则中使用条件逻辑(或NOT!运算符)?

如何在Drools引导规则中使用条件逻辑(或NOT!运算符)?,drools,kie,kie-workbench,kie-wb,kie-server,Drools,Kie,Kie Workbench,Kie Wb,Kie Server,全部, 我正在使用Drools Workbench 6.2.0.Final以声明方式创建引导规则 我的情况是这样的: 具有具有以下属性的贷款数据对象: 状态字符串 金额-双倍 双酯 消息字符串 需求-布尔 自动生成的drl文件是: rule "Arizona" when loan : Loan( state == "Arizona", amount >= 1000 , amount <= 3000, intere

全部,

我正在使用Drools Workbench 6.2.0.Final以声明方式创建引导规则

我的情况是这样的:

具有具有以下属性的贷款数据对象:

  • 状态字符串
  • 金额-双倍
  • 双酯
  • 消息字符串
  • 需求-布尔
自动生成的drl文件是:

rule "Arizona"
    when
        loan : Loan( state == "Arizona", amount >= 1000 , amount <= 3000, 
                     interestRate >= 0.15, interestRate <= 0.50 )
    then
        loan.setRequirement( true );
end

(2) 有没有一种方法可以声明式定制SOAP响应:

e、 g

true

false
允许的金额值应在1000到3000之间

false
利率值的允许值应在15%到50%的范围内
不希望以编程方式执行此操作


谢谢大家

这个问题的表述方式存在一个根本性的误解,因为不存在“当这个规则失效时”这样的状态。当规则的条件与一组匹配的事实相匹配时,就会触发该规则,对于工作内存中的当前事实集,这种情况可能会发生任意次数

当然,有些情况下规则无法启动,但即使是像“亚利桑那州”这样的简单规则,失败的原因也不止一个

  • WM中可能没有任何贷款事实
  • WM中可能存在贷款事实,但州为“德克萨斯”(或其他48种可能性中的任何一种)
  • 金额和利率中的一个或两个的值不在预期范围内
  • 程序不可能知道您只对#3感兴趣(更不用说详细的分析了,即它只是一个值还是两个值)。但是可以让一个程序知道:只需执行所有检测失败原因的规则,即您感兴趣的规则,就可以(我认为)使用#3的一些规则来完成

    看起来您的贷款设计只预见了一条消息,但这是可以修复的


    进一步阅读:a作为答案太长。

    标题与问题的文本不匹配。鉴于您没有纠正完全不准确的标题,您似乎不欣赏StackOverflow的精神。博万
    loan.setMessage( "Allowed values for amount should be in the range of 1000 to 3000"); 
    
    loan.setMessage( "Allowed values for interest rate values should be in the range of 15% to 50%" );
    
    <requirement>true</true>
    
    <requirement>false</requirement>
    <message>Allowed values for amount should be in the range of 1000 to 3000</message>
    
    <requirement>false</requirement>
    <message>Allowed values for interest rate values should be in the range of 15% to 50%</message>