不从REST API

时间:2016-12-06 15:46:00

标签: rest drools drools-guvnor kie

我在KIE服务器上部署的drools工作台上创建了一个小项目。使用其余的API,我可以插入事实,并适当地触发规则。但是,引导决策表中包含的规则不会触发。以下是我将发送给KIE服务器的请求示例:

<batch-execution lookup="defaultKieSession">
<insert out-identifier="applicant" return-object="true" entry-point="DEFAULT">
    <models.Applicant>
        <timeEmployed>35</timeEmployed>
        <employmentStatus>Contract</employmentStatus>
        <violations>[]</violations>
    </models.Applicant>
</insert>
<fire-all-rules/>
</batch-execution>

触发此数据应触发的所有规则,但决策表中包含的规则除外。

当我运行具有相同数据的测试场景时,所有规则(包括决策表的规则)都会被正确触发: enter image description here 该问题似乎与REST API的使用有关。关于我做错了什么想法?

以下是相关表格:  enter image description here

违规只会调用一个向违规数组附加错误的方法。

在kmodule.xml里面我有。

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

澄清 为了清楚我的请求从Guided DRL中取消规则,我的问题只是引导规则表中的规则。例如:

根据规则: enter image description here

如果我发送此请求:                                1994-04-15 11:03:44-0000             1970-01-13 16:19:41-0024             合同             35             []                        

这是回复的一个片段:

enter image description here

此数据也应与gdst中的规则匹配,但不会触发。

1 个答案:

答案 0 :(得分:0)

虽然我们无法在表格中看到条件运算符,但我的猜测是标准不符合任何决策表行/规则。

将输入数据映射到决策表,我们可以看到:

  1. 就业状态是合同,因此匹配第1行。在第3-11行中,它被忽略,因此取决于其余列的匹配。
  2. 就业持续时间可能是timeEmployed,并且它与任何行的相等性不匹配。如果列运算符是&gt;,则它匹配行2-11。如果是&lt;,那么它匹配第1行。
  3. 第1行和第2行忽略了作业类别,并且输入中没有明显的匹配值,因此行3-11不匹配。
  4. 基于:

    • 3表示只有第1行和第2行可以匹配
    • 1表示只有第1行可以匹配第1行和第2行
    • 根据我们所看到的内容,
    • 2是不确定的

    我的猜测是第1行已关闭,但#2并不匹配。