2013-06-26 52 views
1

我在寫一個.drl文件來實現Drools規則。根據業務需求,我需要檢查單個規則的3個條件。所以我的問題是,是否有可能在同一規則中有多個when當在Drools中的單個規則中使用條件時,我們可以使用多個嗎?

我搜索了很多小時,但沒有收到任何有用的信息。有人可以請指導我如何在單個規則中編寫多個when drools。

即是否可以這樣做?

rule "Test rule 1" 
    when 
     condition1 
    then 
     <execute code> 
    when 
     condition2 
    then 
     <execute code> 
end 

回答

1

不,80%確定您不能。你找到了一個打開的.drl文件,並試了一下,說'不匹配的輸入',但在第二個then之後的中間令牌上失敗。因此,80%(說一些數字)。高興地編譯器順利通過了第二個when

嘗試併發布。

+0

正確的,我試圖多次它說:「不匹配輸入」 :( 所以如果我想使用4條件我必須做出4條新的規則吧? –

+0

如果我想的'時,當時的時候,then'你可以做至少兩件事:分裂爲兩個規則和顯着差異,或在'then'內部構建一個'if-'then''。 – uprego

0

不,你不能。基本上,您需要實施兩條規則,每條規則都有一個when塊。結果應該正是你想要的。

0

以上(多when..then)是行不通的。 另外,規則不能嵌套。

+0

這不是一個答案,這應該是一個評論。 –

相關問題