
(查看 圖 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…