1. 程式人生 > >旗正規則引擎規則編輯

旗正規則引擎規則編輯

規則引擎 企業信息化 系統升級 業務規則管理系統

看到有人問,旗正規則引擎定位就是規則邏輯實現簡易,業務員也可以執行,可是試用的時候,突然發現還是有些淩亂,規則編輯感覺還是有點繁瑣啊。那我說,方法還是沒對路,接下來,我來給獻上寶典。

規則包開發

通過“開始-->程序-->旗正商業規則定制平臺—>規則配置器”啟動規則配置器。啟動後, 關閉歡迎首頁, 進入到缺省的開發工作空間。

通過規則配置器的測試步驟包括創建工程、創建規則包、定義對象庫、定義規則、發布規則包、測試規則包、創建web頁面、web方式測試規則包

以下分別講述這些步驟具體的操作方法:

1、創建工程

點擊規則編輯器中的新建工程按鈕:

技術分享

輸入“體驗開發”作為工程名,如果不需要改變工程存儲路徑,則直接點擊確定即可:

技術分享

點擊確定後,規則編輯器中就會出現“體驗開發”的規則工程,如下:

技術分享

通過windows的資源瀏覽器,也可以看到已經新建的規則工程的存儲位置:

如下所示,可以看到在VisualRules的安裝目錄下的

Samples目錄下面,新建了一個“體驗開發”的目錄,在此目錄下面有一個default.prj文件,以及兩個目錄分別為databak目錄。其中data目錄,將存放在此工程下新建的規則包。而bak目錄將存放此工作下所有自動保存的規則包,以及每次備份產生的規則包備份文件。

其中,以 .auto結尾的文件,都是定時自動保存的規則包,當編輯器異常退出後,會提示是否恢復自動保存的規則包。

.rpk~1~這種類型結尾的規則包,都是每次備份產生的規則包備份文件。當選擇了恢復規則包歷史時,會讀取這些規則包備份文件,並且根據所選的進行恢復。

如果通過編輯器恢復失敗,可以手工做恢復操作。只需根據文件的修改日期,找到需要恢復的文件,將其後綴改成.rpk之後,然後覆蓋data下面對應的文件即可完成恢復工作。

技術分享

2、創建規則包

右鍵點擊“體驗開發”規則工程,在彈出的菜單中選擇“新建規則包”:

技術分享

點擊新建規則包後,在體驗開發工程下面就會新建一個“規則包”的規則包,可以將其直接改名為hello

技術分享

3、定義對象庫

然後展開hello規則包,點擊規則包下面的“對象庫”,在中間的編輯窗口中,點擊添加按鈕,並且輸入需要添加的變量名、類型和顯示名稱,如下所示:

技術分享

同理添加另一個變量,名稱為welcome,類型為string,顯示名稱為歡迎辭:

技術分享

4、定義規則

右鍵點擊規則包,然後在彈出的菜單中,選擇“新建規則”:

技術分享

點擊後,會在規則包下面新建新建一個“規則”,將其名稱修改為“返回歡迎辭”:

技術分享

點擊“返回歡迎辭”規則後,在中間的規則編輯窗體,設置條件和動作。首先添加“添加條件”按鈕:

技術分享

之後,點擊“請選擇”,在彈出的菜單中,選擇傳入數據—>姓名:

技術分享

然後,點擊條件的判斷符上,在彈出的菜單中選擇“不為空”:

技術分享

條件設置完後,設置動作。點擊“添加動作”按鈕,如下:

技術分享

然後,在那麽動作中,點擊“請點擊選擇”,在彈出菜單中,選擇“變量賦值”:

技術分享

然後,點擊“選擇變量”,在彈出菜單中選擇傳入數據à歡迎辭:

技術分享

在之後生成的賦值語句中,點擊“請點擊選擇”,在彈出菜單中選擇“輸入常量值”:

技術分享

然後點擊“空”,在彈出的文本框中,錄入“Hello”,並點擊確定。

技術分享

添加完“Hello”之後,點擊其後面的[],在彈出菜單中選擇“+”:

技術分享

之後,點擊“請點擊選擇”,在彈出的菜單中,選擇“選擇值”:

技術分享

然後點擊“請選擇”,選擇傳入數據—>姓名:

技術分享

設置完,滿足條件的動作之後,在設置不滿足條件的動作。首先將該規則的屬性設置為“支持否則”,在規則的屬性窗口中,在否則動作後面的選擇框中打上勾:

技術分享

之後,規則的編輯窗口,會增加否則動作。可以按照上面設置那麽動作的方式來設置歡迎辭賦值為“Hello World”語句,也可以通過復制那麽中的動作到否則中,然後進行修改。以下演示,怎麽復制操作,首先通過鼠標拖動來選擇那麽中的賦值行,然後鼠標右鍵點擊在賦值行上,選擇彈出菜單中的“復制”:

技術分享

復制後,右鍵點擊否則動作中的“添加動作”按鈕,然後選擇“粘貼”:

技術分享

然後在粘貼後的賦值行中,點擊“+”,選擇“[]”:

技術分享

然後,點擊“Hello”,在彈出的輸入框中,輸入“Hello World”,點擊確定:

技術分享

到此,就完整了規則的設置:

技術分享

5、發布規則包

規則包發布時,需要根據該規則包生成對應的java代碼,然後將該代碼編譯,生成.rsc文件。將此文件輸出到調用該規則包的應用程序的路徑目錄中,就完成了發布操作。

VisualRules可以采用自動發布和手動發布兩種方式,自動發布可以設置缺省的發布路徑,並且設置成在保存的時候,同時發布規則包。手動發布是在發布時,指定輸出路徑:

自動發布設置

首先點擊工程菜單下的“設置”:

技術分享

選中“規則包保存後自動編譯選項”,並且設置缺省的輸出路徑。缺省情況下為“Tomcat\webapps\ROOT\WEB-INF\classes”,此路徑是一個相對路徑,相對於VisualRules的安裝目錄下。

因此如果VisualRules安裝目錄是C:\visualRules,缺省情況下,點擊保存後,會自動將規則包編譯後的rsc文件保存到 C:\visualRules\ Tomcat\webapps\ROOT\WEB-INF\classes中。

技術分享

自動發布

在規則配置器中,點擊保存後,會將當前規則包以rpk文件的方式,並且將編譯後的規則包以rsc文件的方式保存。查看規則工程目錄的data下面的文件:

技術分享

可以看到,在規則工程的data目錄下,生成了hello.rpk的文件。其中hello就是規則包的可調用執行名。

查看規則配置器中設置的自動發布路徑下,已經生成了hello.rsc文件:

技術分享

此目錄是VisualRules自帶的Tomcat的缺省工程路徑,當規則包發布到此目錄後,就可以通過tomcathttp://localhost:8880/下面的jsp文件來訪問這些規則包。

手工發布:

為了能夠通過規則服務來訪問規則包,需要將規則包發布到VisualRules的規則服務路徑中,此路徑在VisualRules安裝目錄的rules目錄下。

在規則包上點擊右鍵,選擇彈出菜單中的導出—>導出規則包編譯文件:

技術分享

然後選擇VisualRules安裝目錄的rules目錄,點擊確定:

技術分享

出現以下彈出窗體後,表示發布成功:

技術分享

然後查看VisualRules安裝目錄的rules目錄下:

技術分享

已經生成hello.rsc文件,說明發布成功。

6、測試規則包

可以直接在規則配置器中,測試規則包的執行情況。點擊規則包後,在中間的編輯窗體的測試窗體中,可以輸入傳入值,點擊執行後可以顯示傳出值:

技術分享

在姓名對應的“初始初始值”位置,雙擊鼠標後,可以輸入初始值,假設輸入為旗正,然後點擊執行按鈕。可以看到執行結果:

技術分享

歡迎辭對應的“實際結果值”位置中,就顯示了執行後的結果:“Hello 旗正”。


規則集成

Java類調用規則包

除了規則配置器嵌入的頁面配置器生成的jsp頁面,調用規則包之外,其他的java工程如果要調用此規則包,可以通過規則引擎類類進行調用。以下演示eclipsejava工程如何調用規則包。

設置java工程路徑

首先在eclipsejava工程中,點擊屬性設置其路徑。在其屬性窗口的Java Build Path中設置Libraries,通過Add External JARs…加入VisualRules安裝目錄的lib下的engine.jar,在通過Add External Class Folder…加入VisualRules安裝目錄下的rules目錄。如下所示:

技術分享

添加Java測試類

java工程中添加一個java類,名為TestHello.java,其內容編輯如下:

import com.flagleader.engine.RuleEngine;

importcom.flagleader.engine.RuleEngineFactory;

public class TestHello {

publicstatic void main(String[] args) {

try{

RuleEngineengine = RuleEngineFactory.newInstance().getRuleEngine();

engine.put("name","訪問測試");

engine.excute("hello");

System.out.println(engine.getString("welcome"));

}catch (Exception e) {

e.printStackTrace();

}

}

}

執行java測試類

點擊執行後,可以看到如下結果:

技術分享

說明已經調用了hello規則包,並且根據傳入的name值“訪問測試”,返回處理結果是 hello+“訪問測試”。

同理,任何的其他java類,只需加入上述的代碼,即可完成調用規則包的工作。


本文出自 “13184590” 博客,請務必保留此出處http://13194590.blog.51cto.com/13184590/1954198

旗正規則引擎規則編輯