JBoss BRMS - Rules 語法與範例信用卡程式
JBoss Rules 是JBoss BRMS 裡面專門管理商業邏輯的部分,像是客戶是否符合打折的條件啊,什麼條件下應該要將倉庫的貨品拍賣等等的...
以人類的腦子裡面,通常我們是怎麼判斷邏輯的呢?
通常都是向下面一樣,
也就是會先設想一些條件,再來判斷要做的事情。要寫一條JBoss 的規則邏輯很簡單。跟人類大腦判斷的基本上也差不多。基本上,大概就分成幾個部分,
大部份要做的事情都在When 與 then 就做掉了。
語法很簡單, 只要會一點程式設計的人都可以很快上手,大多是 ==. >=, <=...等等...
有一些設定與規則的fire 順序與方式比較有關係,所以特別寫在上面註記一下:
no-loop
預設值: false
類型: Boolean
設定 no-loop為true可以防止這個規則邏輯有任何變動,會觸發其它的規則,導致無窮迴圈。
lock-on-active
預設值: false
類型: Boolean
no loop 的加強版,因為會其他的rule會觸發結果,也會有無窮迴圈的狀況產生,
因此,在這個 ruleflow group 或是 agenda group 啓動時,設定的rule只有一次。
salience
預設值: 0
類型: integer
設定執行的順序,數字越大優先等級越高
以下我們來寫利用JBoss BRMS 一個簡單的Drools 程式,並且在BRMS 上面建立一個測試的策略,以後修改規則都可以拿這個策略去確認是否正確。
1.