基於Drools決策表的通用規則集設計

2021-08-11 20:52:50 字數 1855 閱讀 5737

jie 2017/12/05

ruleset[required]規則包自定義名稱

import[option]匯入規則庫的類和靜態函式(function)列表

sequential[option]是否按從上到下的順序執行規則

ruletable[required]定義規則表,後緊接自定義規則字首名稱

condition[required]該列是規則的條件表示式

action[required]該列是規則的結論

priority[option]該列是規則的salience值,數值越大優先順序越高。覆蓋sequential關鍵字

$param佔位符

$1,$2,...佔位符:逗號分隔的值列表

通過import類和靜態方法,在決策表內就可以使用自定義方法擴充套件操作。

dto的paramx屬性均為string型別,需要根據具體上下文呼叫parse方法轉換資料型別。

規則執行結果可儲存在dto的retx屬性(string型別),也需要parse。

支援xls檔案、drl字串格式的規則集。

建議通過讀取drl字串配置的方式載入規則集並執行。

/** drools決策表 */

public class droolssvs

/*** 載入drl字串,獲取kiesession

* * @param drlstr

* drl字串

* @return

*/public static kiesession getkiesessionbydrlstring(string drlstr)

/*** 將xls檔案編譯為drl字串

* * @param xlspath

* 決策表xls檔案路徑

* @return drl字串

* @throws exception

*/public static string compile2drl(string xlspath) throws exception

/*** 注入pojo,執行規則

* * @param kiesession

* @param pojos

*/public static void execute(kiesession kiesession, droolsspreadsheet... pojos)

public static void main(string args) catch (exception e)

}}

public class droolsspreadsheet

org.kie

kie-api

$ org.drools

drools-core

$ org.drools

drools-decisiontables

$

drools 7 x 決策表使用

何時使用決策表 如果規則能夠被表達為模板 資料的格式,那你 應該考慮使用決策表。決策表中的每一行就是對應模板的一行資料,將產生乙個規則。執行決策表 drools 引擎所部署的系統中執行決策表。首先,決策表轉換 成的drools規則語言 drl 然後執行規則引擎需求。這意味著它是可能的業務規則的變更,...

Drools規則引擎之決策表從入門到精通

決策表是drools規則引擎的重要應用場景之一。但學習決策表需要了解drools基礎語法知識,才能進一步進行學習。第一章 drools決策表介紹 第二章 入門 原理 操作講解 第三章 決策表整體構成概述 第四章 決策表常規屬性使用講解 第五章 複雜規則實戰講解 第六章 與excel特性相結合 第七章...

簡述用決策表設計測試用例的步驟 決策表快速入門

1.為什麼要開發決策表?決策表是分析和表達多邏輯條件下執行不同操作的情況的工具,使用它可以簡化條件使寫的程式邏輯更清晰。2.決策表的組成?條件樁 列出問題的所有條件。條件項 針對條件樁給出的條件,列出所有能取到的值。動作樁 列出問題規定的可能採取的操作。動作項 指出條件項的各組取值的情況下應該採取的...