2016-12-06 28 views
0

我在部署在KIE服務器上的drools工作臺上創建了一個小項目。使用其他API,我可以插入事實,適當地解僱規則。然而,包含在指導決策表中的規則不會觸發。下面是我會發送到KIE服務器的請求的例子:Kie服務器引導的Descision表規則不是從REST API發起的

<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"/> 

澄清 只是要清楚我的請求消防規則從指導日間行車燈,我的問題只是在引導的規則表中的規則。例如:

鑑於規則: enter image description here

如果我把這個請求: 1994-04-15 11:03:44-0000 1970年1月13日十六點19分41秒-0024 合同 []

這是響應的片段:

enter image description here

該數據也應與在GDST規則但它是不是被解僱。

+0

你能分享你的dtable的外觀嗎?還有你的kmodule.xml文件的內容。 –

回答

0

儘管我們無法看到表中的條件運算符,但我的猜測是條件不符合任何決策表的行/規則。

輸入數據映射到決策表中,我們可以看到:

  1. 就業狀況是合同,所以符合第1行的行3-11它被忽略,所以要看的匹配剩下的列。
  2. 就業持續時間可能是工作時間,它不匹配任何行的平等。如果列運算符是>,它匹配行2-11。如果它是<,則它匹配第1行。
  3. 作業類別在行1和2中被忽略,並且在輸入中沒有明顯的匹配值,因此行3-11不匹配。

基於這些:

  • 3只說行1和2可以匹配
  • 1只說第1行能匹配行1和2
  • 2基於不確定我們請參閱

我的猜測是行1靠近,但#2不匹配。

+0

對不起。我編輯了圖像以顯示條件。我還發布了執行測試場景的圖像。使用相同的輸入行1的規則會被觸發。但是,當事實通過REST API插入時,它不會觸發。 –

+0

out-identifier無效,正確無法識別。糾正之後它是否工作? – Jeff

+0

「out-identifier」似乎是正確的,當我嘗試「outIdentifier」時,對象沒有被返回。 –