IBM-ILOG JRules 開發-布署-實例-R4


(查看 圖 4 的更大版本。)

這組步驟為 XOM 中的所有元素創建 BOM 條目,使用默認的語言表達來訪問和設置每個 BOM 元素。圖 5 顯示了 Rule Explorer 中的一些 BOM 元素和包。

圖 5. Rule Explorer 中的 BOM 項目


默認的語言表達在大部分情況下已足夠了。例如,為 EventCode 的 value 的設置和獲取所生成的語言表達可在 BOM 編輯器中看到,只需雙擊 BOM 元素即可,如 圖 6 中所示。

圖 6. BOM 編輯器中的語言表達


(查看 圖 6 的更大版本。)

擴展 BOM 並細化詞彙表

規則詞彙表是一組可用於準確定義一條業務規則的詞彙。這些詞彙是 BOM 的語言表達。我們常常需要增強 BOM,添加元素或方法來簡化規則的編寫。例如,Parameter 的 value 在輸入模型中顯示為一個字符串。為了將此值與規則中的數字值對比,我們定義在 BOM 類 Parameter 中定義了一個 “虛擬” 或 “合成” 方法 getNumericValue,它從字符串提取一個雙精度值並為它提供一種語言表達。這一步使我們能夠編寫如下這樣的規則:

if the numeric value of this parameter is at least 15

then …

每個 BOM 元素需要最終映射回可執行的 XOM。對於沒有相應的 XOM 實現的 “虛擬” 方法,此映射通過 BOM 到 XOM 的映射來完成。在運行時,規則引擎分析規則集,使用 BOM 到 XOM 的映射訪問 XOM。

圖 7 在 BOM 編輯器中顯示了虛擬方法。要定義此虛擬方法,在 BOM 編輯器中執行以下步驟:

1.    將 Name 設置為 getNumericValue。

2.    將 Type 設置為 java.lang.Double。

3.    在 Member Verbalization 區域,將 Navigation 設置為 {this} 的 {numeric value}

4.    在 BOM to XOM Mapping 區域,輸入以下代碼:

        Double d = 0;

        try {

            d = Double.parseDouble(this.value);

        } catch (Exception e) { }

        return d;

圖 7. 添加一個虛擬方法


(查看 圖 7 的更大版本。)

除了虛擬方法,我們還添加了一些虛擬類來實現合成的對象。圖 8 突出顯示了這些虛擬類。(參見 參考資料 獲取更多細節。)

圖 8. 實現合成對象的虛擬類


 

創建一個規則項目

從技術上講,ccc-bom 項目也是一個可包含業務規則的規則項目。但是,我們建議將 BOM 放在它自己的項目中,將業務規則放在不同的項目中。此方法支持在未來將 BOM 重用於其他規則集。因此,我們使用新建規則項目嚮導來創建一個名為 ccc-rules 的獨立規則項目。

圖 9 描繪的一系列步驟可用於將規則項目創建為一個引用 ccc-bom 規則項目的標準規則項目。要創建規則項目,執行以下步驟:

1.    選擇 File – New – Rule Project。

2.    在打開的窗口中,選擇 Standard Rule Project 作為模板並單擊 Next。

3.    在接下來的窗口中,指定 “ccc-rules” 作為項目名稱並單擊 Next。

4.    選擇 Rule Project Reference 中的 ccc-bom 並單擊 Finish。

圖 9. 創建規則項目

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營