管理業務規則與業務過程
引言
現代軟件系統設計強調使用業務規則管理系統(BRMS)管理快速變化的業務規則的需求。您可以改進您的業務過程敏捷性來提供更好的決策方法並能更好地維護您的軟件系統。業務過程管理系統(BPMS)能夠直接利用 BRMS 解決方案所提供的功能。
本文闡述了整合這兩個行業領先的軟件系統的必要步驟:
IBM FileNet P8 Business Process Manager 在人與系統之間管理內容及與人緊密聯系過程的工作流。 IBM WebSphere ILOG JRules通過支持實時修改業務規則而幫助組織快速修改業務決策。
這兩個產品的整合方法以下幾種:
規則連接框架
Java™ 組件整合
Web Services
本文關注於使用 Web Services 實現這兩種產品的低耦合整合。
理解先決條件
本文至少需要以下的配置:
安裝包含 Content Engine、Process Engine 和 Application Engine 的 IBM FileNet P8 Platform Version 4.5 或以上版本
安裝包含 Rule Studio 和 Rule Execution Server 的 IBM WebSphere ILOG JRules Version 7.0 或以上版本
以下其他有用的條件:
熟悉 Eclipse
具有使用 IBM FileNet P8 Process Designer 的基本經驗
在本文中,使用 IBM FileNet P8 Version 4.5.1 與 IBM WebSphere ILOG JRules Version 7.0.2 整合。
探討醫療保險的用例
第一個例子描述的是一個保險業過程,它利用 BRMS 進行直接處理。BRMS 負責處理一般任務,包括檢查健康等級、檢查 BMI 和計算客戶保險費。BRMS 會自動化最小風險應用的登記。而保險人員只處理復雜的應用。
在現實場景中,保險處理正變得越來越復雜,但是在本文中 FileNet BPM 的處理流程是經過簡化的,主要關注於整合的技術層面。
示例場景的保險處理工作流是由一個系統步驟組成的,它使用一個掛載的透明決策服務(HTDS)進行直接處理。用於自動保險業務的 HTDS 是 JRules。在某些條件下會轉發兩個人工任務。如果 HTD 拒絕政策請求(返回 false),那麼這個工作流會被轉發到保險人員進行評估。電子郵件通知可以自動實現,但是為了簡化這個實現,在示例場景中會被設計為一個人工任務。圖 1 說明這個處理工作流。
圖 1. 醫療保險用例圖
設計業務規則
WebSphere ILOG JRules Rule Studio 是一個基於 Eclipse 的規則開發工具。要創建一個新的規則,我們需要完成以下步驟:
選擇菜單 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Rule Studio 打開規則工具。
單擊 File > New > Rule Project,如圖 2 所示。
圖 2. 使用 Rule Studio 創建一個新的規則項目
選擇 Standard Rule Project 並輸入一個正確的項目名稱。
保留項目的默認設置,然後單擊 Finish。
規則工具底部的 Rule Project Map 是您可以用來創建一個 RuleSet 的不同部署步驟。
創建 XOM 和 BOM
在 ILOG JRules 中創建的規則是針對一個 Executable Object Model (XOM) 運行的,它引用了應用對象和外部應用數據。XOM 是 Business Object Model (BOM) 的基本實現。BOM 是對應於所寫規則的模型。您可以從零開始創建一個 BOM,您也可以通過解析您的執行對象模型(XOM)自動創建 BOM。本文闡述了如何使用以下步驟從一個 XOM 創建一個 BOM。JRules 可以使您能夠從 Java 對象或 XML 創建 XOM。要將部署的規則以一個 Web Service 發布,需要使用一個 XML XOM。
將下面的 FileNet XSDs 保存到您的本地硬盤: http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsd 和 http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd。 文件 bpmnxpdl_24.xsd 引用文件 schema_10_xpdl.xsd file 作為它的模式定義。
編輯 bpmnxpdl_24.xsd 文件,然後將屬性 schemaLocation 從 http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd 修改為 [localpath]/[filename]。
從 Rule Project Map 中選擇 Import XOM。
在 XOM 選擇窗口選擇 Dynamic Execution Object Model (XSD or WSDL)。
單擊 Add External XSD,如圖 3 所示。
圖 3. 創建 XOM
選擇 FileNet XSD(bpmnxpdl_24.xsd),然後單擊 Finish。這樣會為 Rule Project 創建 XOM。
單擊 Rule Project Map 的 Create BOM 鏈接,然後為 BOM 設置名稱。
保證選中 Create a BOM entry from a XOM,然後單擊 Next。
單擊 Browse XOM,選擇唯一可用的 XOM,然後單擊 OK。這樣就可以看到可用的記錄,如圖 4 所示。
圖 4. 創建 BOM
選擇第一個記錄,然後單擊 Finish。您可能在創建 BOM 時會遇到一些由 ILOG 的 BOM 對象默認說明的錯誤。
單擊每一個錯誤,然後在默認說明後加上數字後綴,修正這些錯誤。
保存規則項目。然後錯誤應該就會消失。
創建所需要的參數
業務規則需要使用所定義的變量。要創建這些參數,需要完成以下步驟:
單擊 Rule Project Map 的 Define parameters。
保證 ILOG JRules 所影響的參數都聲明為 OUT 或 IN/OUT。
保存例子使用的變量名、類型和說明,包括本文所使用的變量。如表 1 所示。
例子的重要變量
名稱 類型 方向 說明 pi_height java.lang.Float IN_OUT PI Height pi_weight java.lang.Float IN_OUT PI Weight pi_gender java.lang.String IN_OUT PI Gender pi_DOB java.util.Date IN_OUT PI Date of Birth pi_maritalStatus java.lang.String IN_OUT PI Marital Status pi_empStatus java.lang.String IN_OUT PI Employment Status pi_monthlyIncome java.lang.Double IN_OUT PI Monthly Income pi_reqCoverage java.lang.Double IN_OUT PI Requested Coverage pi_insurRejected java.lang.Boolean IN_OUT PI Insurance Rejected in 5 years pi_employerInsur java.lang.Boolean IN_OUT PI Has Employer Insurance pi_otherInsur java.lang.Boolean IN_OUT PI Has Other Insurance pi_HH_AIDS java.lang.Boolean IN_OUT PI Has AIDS disease pi_HH_alcohol java.lang.Boolean IN_OUT PI Is Alcoholic pi_HH_Cancer java.lang.Boolean IN_OUT PI Has Cancer pi_HH_KidneyStones java.lang.Boolean IN_OUT PI Has Kidney Stones pi_HH_Tumor java.lang.Boolean IN_OUT PI Has Tumor pi_HH_BP java.lang.Boolean IN_OUT PI Has High BP pi_HH_Diabetes java.lang.Boolean IN_OUT PI Has Diabetes pi_BMI java.lang.Float IN_OUT PI BMI pi_BMI_Res java.lang.String IN_OUT PI BMI Result pi_AcceptInsurance java.lang.Boolean IN_OUT PI Accept The Insurance pi_AidsRating java.lang.Integer IN_OUT PI AIDS Rating pi_CancerRating java.lang.Integer IN_OUT PI Cancer Rating pi_AlcoDrugaddictRating java.lang.Integer IN_OUT PI Alcohol Rating pi_KidneyStonesRating java.lang.Integer IN_OUT PI Kidney Stones Rating pi_TumorRating java.lang.Integer IN_OUT PI Tumor Rating pi_DiabetesRating java.lang.Integer IN_OUT PI Diabetes Rating pi_HiBPRating java.lang.Integer IN_OUT PI BP Rating pi_HealthRating java.lang.Integer IN_OUT PI HealthRating
創建規則包
規則集是以包組織的,每一個包都包含一組規則。要創建一個新的規則包,單擊 Rule Project Map 的 Add rule package,然後設置一個正確的名稱。
創建所需要的業務規則
每一個業務規則都是由一個條件和一組語句構成的。這個條件和語句會使用規則項目所定義的參數。要創建一個業務規則,需要完成以下步驟:
單擊 File > New > Business Rule,然後設置一個正確的名稱。
選擇希望在其中創建規則的包。
單擊 Finish。然後代碼編輯器就會顯示,您可以在上面編輯規則。
在代碼編輯器上創建一個規則,如清單 1 所示,這樣如果一個患者的 BMI 結果是 Obese 或 Underweight,則 Accept The Insurance 條件將被設置為 false。
清單 1. 檢查體重指數的規則
if
'PI BMI Result' is "Obese"
or 'PI BMI Result' is "Underweight"
then
set 'PI Accept The Insurance' to false ;
在代碼編輯器上創建一個規則,如清單 2 所示,這樣如果一個患者的健康等級超過 60,Accept The Insurance 條件就會被設置為 false。
清單 2. 驗證一個可接受的分健康等級的規則
if
'PI HealthRating' is more than 60
then
set 'PI Accept The Insurance' to false ;
在代碼編輯器中創建一個規則,如清單 3 所示,這樣如果過去 5 年曾經有保險被拒絕,那麼 Accept The Insurance 條件會被設置為 false。
清單 3. 檢查保險在過去 5 年是否被拒絕的規則
if
'PI Insurance Rejected in 5 years' is true
then
set 'PI Accept The Insurance' to false ;
初始化輸入變量,如清單 4 所示,這樣如果 1 等於 1:
Accept The Insurance 條件會被設置為 true
BMI 被設置有 Weight/(Height * Height)
清單 4. 初始化輸入變量
if
1 equals 1
then
set 'PI Accept The Insurance' to true ;
set 'PI BMI' to 'PI Weight' / ('PI Height' * 'PI Height') ;
初始化健康等級,如清單 5 所示,這樣:
AIDS Rating 設為 100
Cancer Rating 設為 90
Tumor Rating 設為 80
Diabetes Rating 設為 60
Alcohol Rating 設為 50
BP Rating 設為 40
清單 5. 初始化健康等級
if
1 equals 1
then
set 'PI AIDS Rating' to 100 ;
set 'PI Cancer Rathing' to 90 ;
set 'PI Tumor Rating' to 80 ;
set 'PI KidneyStones Rating' to 70 ;
set 'PI Diabetes Rating' to 60 ;
set 'PI Alcohol Rating' to 50 ;
set 'PI BP Rating' to 40 ;
使用一個技術規則計算健康等級,如清單 6 所示。
清單 6. 使用一個技術規則計算健康等級
when {TirContext() from ?context;
evaluate (1==1);
}
then {
pi_HealthRating = 0;
if (pi_HH_AIDS) {
pi_HealthRating = pi_HealthRating + pi_AidsRating;
}
if (pi_HH_alcohol) {
pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
}
if (pi_HH_Cancer) {
pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
}
if (pi_HH_Tumor) {
pi_HealthRating = pi_HealthRating + pi_TumorRating;
}
if (pi_HH_KidneyStones) {
pi_HealthRating = pi_HealthRating + pi_KidneyStonesRating;
}
if (pi_HH_Diabetes) {
pi_HealthRating = pi_HealthRating + pi_DiabetesRating;
}
if (pi_HH_BP) {
pi_HealthRating = pi_HealthRating + pi_HiBPRating;
}
}
使用一個將 BMI 與 BMI 結果關聯的決策表計算 BMI 結果,如圖 5 所示。
圖 5. 使用一個決策表計算 BMI 結果
創建規則流
一個規則流決定了規則集的執行順序。要創建這個規則流,您必須完成以下步驟:
單擊 Add RuleFlow,設置一個名稱,然後單擊 Finish。這樣就會打開一個圖形化編輯器。
單擊 Start 圖標,然後單擊圖表區域創建流的開始點。
單擊創建結束點。
按照執行順序將規則從 Project Explorer 拖到圖表區域。
單擊 Create Transition 圖標,然後單擊開始對象。
單擊規則,這樣就能創建開始和第一個規則之間的轉換。
為其他規則和結束點創建類似的轉換。圖 6 顯示的規則流的最後結果。
圖 6. 創建規則流
創建規則應用
這個規則應用是將要部署到執行服務器的部署存檔。要創建這個規則應用,需要完成以下步驟。
單擊 Project Map 的 Create RuleApp,並設置一個名稱。
選擇需要添加到存檔的項目和規則集。
單擊 Finish。
這樣就為規則集創建規則應用。您現在可以直接將規則應用部署到執行服務器或把它導出為一個 JAR 文件以備將來部署。
測試、調試和部署業務規則
因為 Rule Studio 是基於 Eclipse 框架的,所以您可以像其他 Java 項目一樣測試和調試業務規則。
單擊 Run > Open Run Dialog,然後在上下文菜單上配置一個新的規則項目。
為參數指定初始值,然後單擊 Run。要測試結果,您可以在您的規則中插入一些輸出語句,然後檢查控制窗口的輸出。
一旦您作好部署的准備後,您就可以右鍵單擊 Project Explorer 中的規則應用,然後單擊 Ruleapp > Deploy。然後部署對話框就會顯示。
保留默認設置,並單擊 Deploy。這樣就會將 RuleApp 存檔部署到 Rule Execution Server。
要驗證部署是否成功,您可以在 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 打開 Rule Execution Server。
使用 resAdmin/resAdmin (ILOG Version 7.0.2) 登錄,然後單擊 Explorer 選項卡。
單擊 RuleApps 樹,然後您最新部署的規則集就會顯示,如圖 7 所示。
圖 7. 部署業務規則
提取部署的規則的 WSDL
Web Services Description Language (WSDL) 是一個接口定義語言,Web Services 客戶用它確定服務器所提供的接口明細。完成以下步驟就能夠為部署的 ILOG 規則集生成 WSDL 鏈接。
單擊 Start > Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 登錄到 Rule Execution Server。
單擊 Explorer 選項卡,然後選擇和部署規則集。
單擊 Get WSDL for the latest ruleset version。
這樣會打開一個以 XML 格式顯示所生成的 WSDL 新浏覽器窗口,如圖 8 所示。您可以在 IBM FileNet P8 Process Designer 使用這個 WSDL 調用規則集。
圖 8. 為 ILOG 規則集生成 WSDL
使用 IBM FileNet P8 設計過程工作流
在實現這個示例用例中最重要的一個步驟是設計過程工作流。您可以使用 IBM FileNet P8 Process Designer 按照以下步驟創建這個工作流。
使用您的帳號登錄到 IBM FileNet P8 Workplace。
單擊屏幕左邊框架的 Author > Advanced Tools 打開 Process Designer。然後設計器小應用程序就會打開。
通過拖放方式從 BOM 畫板上創建工作流步驟,然後創建工作流,其中 Personal Insurance (Auto Underwriting) 是一個調用 JRules 的 HTDS 直接自動處理保單的系統任務,如圖 9 所示。
圖 9. 過程工作流
創建所需要的工作流變量
工作流變量是工作流中人與系統交互的基礎。它們也用於在各種工作流步驟中實現條件轉發。要創建工作流變量,需要完成以下步驟。
單擊 Process Designer 的 Workflow Properties 圖標。
打開 Data Fields 選項卡。
雙擊數據表格,使用各種數據類型的變量,如表 2 所示。要保證 Merge Type 的數據類型是 Override。
工作流變量
名稱 類型 合並類型 pi_FirstName String Override pi_FirstName String Override pi_LastName String Override pi_Height Float Override pi_Weight Float Override pi_Gender String Override pi_DOB String Time pi_MaritalStatus String Override pi_EmpStatus String Override pi_MonthlyIncome Float Override pi_CoverageAmount Float Override pi_InsurRejected Boolean Override pi_EmpProvidedInsur Boolean Override pi_OtherInsur Boolean Override pi_HH_AIDS Boolean Override pi_HH_Alcohol Boolean Override pi_HH_Cancer Boolean Override pi_HH_KidneyStones Boolean Override pi_HH_Tumor Boolean Override pi_HH_BP Boolean Override pi_HH_Diabetes Boolean Override InsuranceType String Override pi_AcceptInsurance Boolean Override iLOG_RES_String String Override iLOG_RESNumRules Integer Override pi_BMI_Res String Override pi_BMI Float Override pi_AidsRating Integer Override pi_CancerRating Integer Override pi_AlcoDrugaddictRating Integer Override pi_KidneyStonesRating Integer Override pi_TumorRating Integer Override pi_DiabetesRating Integer Override pi_HiBPRating Integer Override pi_HealthRating Integer Override將工作流變量關聯到步驟中並設置參與者
當您將工作流變量分配給步驟時,它們就會顯示在該步驟的步驟處理器中,而它們一般會以之前步驟填寫的輸入框或信息框形式出現。記住工作流變量對於所有步驟是全局的。要分配變量到每一個步驟,需要完成以下步驟。
單擊您想要分配變量的步驟。
在步驟屬性面板,單擊 Parameters 選項卡。(對於 LaunchStep,單擊 General 選項卡)。
從 Available Parameters 列表選擇以下您想要分配給執行步驟的參數,然後使用向右箭頭將參數移到 Selected Parameters 列表:
pi_AcceptInsurance[RW]
pi_BMI[RW]
pi_BMI_Res[RW]
pi_CoverageAmount[RW]
pi_DOB[RW]
pi_EmpProvidedInsur[RW]
pi_EmpStatus[RW]
pi_FirstName[RW]
pi_Gender[RW]
pi_Height[RW]
pi_HH_AIDS[RW]
pi_HH_Alcohol[RW]
pi_HH_BP[RW]
pi_HH_Cancer[RW]
pi_HH_Diabetes[RW]
pi_HH_KidneyStones[RW]
pi_HH_Tumor[RW]
pi_InsurRejected[RW]
pi_LastName[RW]
pi_MaritalStatus[RW]
pi_MonthlyIncome[RW]
pi_OtherInsur[RW]
pi_Weight[RW]
選擇和移動下面的參數,將它們分配到 Human Underwriting 步驟的 Selected Parameters:
pi_CoverageAmount[RW]
pi_DOB[RW]
pi_EmpProvidedInsur[RW]
pi_EmpStatus[RW]
pi_FirstName[RW]
pi_Gender[RW]
pi_Height[RW]
pi_HH_AIDS[RW]
pi_HH_Alcohol[RW]
pi_HH_BP[RW]
pi_HH_Cancer[RW]
pi_HH_Diabetes[RW]
pi_HH_KidneyStones[RW]
pi_HH_Tumor[RW]
pi_InsurRejected[RW]
pi_LastName[RW]
pi_MaritalStatus[RW]
pi_MonthlyIncome[RW]
pi_OtherInsur[RW]
pi_Weight[RW]
選擇和移動下面的參數,將它們分配到電子郵件通知步驟:
InsuranceType[RW]
pi_AcceptInsurance[RW]
pi_FirstName[RW]
pi_LastName[RW]
對於人工任務(Human Underwriting 和 Email Notification),必須分配工作流參與者。要添加一個參與者到一個任務,需要完成以下步驟:
單擊該步驟。
在參與者區的 General 選項卡,選中 Participants 單選按鈕。
選擇有權限的用戶處理工作項目。為了簡單起見,您可以將用戶 Administrator 分配到所有人工步驟,如圖 10 所示。
圖 10. 關聯工作流參與者
在您將變量和參與者關聯到步驟上後,再通過下面的步驟添加轉發條件。
單擊 Result = True。
輸入 pi_AcceptInsurance = true 作為轉發條件。
單擊 Result = False。
輸入 pi_AcceptInsurance = false 作為轉發條件。
配置 IBM FileNet P8 BPM 使用 Web Services
要配置 IBM FileNet P8 BPM 使用 Web Services,需要完成下面的步驟。
單擊 Workplace Admin,打開 Process Configuration Console 小應用程序。
連接到您的單獨區域。
右鍵單擊這個區域,然後單擊 Properties。
單擊 Web Services 選項卡,並選擇復選框 Enable Process Designer to enter WSDL links without browsing for Web Services,如圖 11 所示。
圖 11. 使過程設計器直接接收 WSDL URL
配置工作流調用步驟執行業務規則
要使用 ILOG 提供的 Web Service,您需要使用來自於 ILOG 執行服務器的 WSDL 配置一個伙伴鏈接。要配置這個伙伴鏈接,需要完成以下步驟。
單擊 Process Designer 的 Workflow Properties > Web Services。
雙擊 Partner Links 列表的空白行,添加一個新的伙伴鏈接。
單擊 Invoke 復選框。
在文本框中,粘貼 ILOG 生成的 WSDL。
保證為 ILOG WSDL 自動選擇 Port Type。最後結果如圖 12 所示。
圖 12. 配置工作流使用 Web Service
一旦伙伴鏈接配置好後,單擊 Web Services Invoke,如 Personal Insurance (Auto Underwriting)。這是一個系統任務,所以 Invoke 是選擇列表中所選擇的操作。
雙擊 Invoke 配置 Web Service 調用。
選擇您剛剛創建的伙伴鏈接,以及這個操作。對於 ILOG,您可以只選擇 executeDecisionService() 操作。然後過程設計器會將 Web Service 的所有輸入和輸出變量填充到兩個單獨的列表中,其中這兩個列表是您可以用來選擇映射本地變量的。
對於每一個輸入和輸出變量,從下拉列表選擇正確的本地變量。圖 24 顯示輸出變量的映射。
表 3. 映射輸出變量以發送數據到 iLog Web Service
名稱 類型 表達式 pi_height Float pi_Height pi_weight Float pi_Weight pi_gender String pi_Gender pi_DOB Time pi_DOB pi_maritalStatus String pi_MaritalStatus pi_empStatus String pi_EmpStatus pi_monthlyIncome Float pi_MonthlyIncome pi_reqCoverage Float pi_reqCoverage pi_insurRejected Boolean pi_InsurRejected pi_employerInsur Boolean pi_EmpProvidedInsur pi_otherInsur Boolean pi_OtherInsur pi_HH_AIDS Boolean pi_HH_AIDS pi_HH_alcohol Boolean pi_HH_Alcohol pi_HH_Cancer Boolean pi_HH_Cancer pi_HH_KidneyStones Boolean pi_HH_KidneyStones pi_HH_Tumor Boolean pi_HH_Tumor pi_HH_BP Boolean pi_HH_BP pi_HH_Diabetes Boolean pi_HH_Diabetes pi_BMI Float pi_BMI pi_BMI_Res String pi_BMI_Res pi_AcceptInsurance Boolean pi_AcceptInsurance pi_AidsRating Integer pi_AidsRating pi_CancerRating Integer pi_CancerRating pi_AlcoDrugaddictRating Integer pi_AlcoDrugaddictRating pi_KidneyStonesRating Integer pi_KidneyStonesRating pi_TumorRating Integer pi_TumorRating pi_DiabetesRating Integer pi_DiabetesRating pi_HiBPRating Integer pi_HiBPRating pi_HealthRating Integer pi_HealthRating表 4 顯示了輸入變量的映射。
表 4. 映射輸入變量以使用 ILOG Web Service
名稱 類型 域名稱 ilog.rules.outputString String iLOG_RES_String ilog.rules.firedRulesCount Integer iLOG_RES_NumRules pi_height Float pi_Height pi_weight Float pi_Weight pi_gender String pi_Gender pi_DOB Time pi_DOB pi_maritalStatus String pi_MaritalStatus pi_empStatus String pi_EmpStatus pi_monthlyIncome Float pi_MonthlyIncome pi_reqCoverage Float pi_reqCoverage pi_insurRejected Boolean pi_InsurRejected pi_employerInsur Boolean pi_EmpProvidedInsur pi_otherInsur Boolean pi_OtherInsur pi_HH_AIDS Boolean pi_HH_AIDS pi_HH_alcohol Boolean pi_HH_Alcohol pi_HH_Cancer Boolean pi_HH_Cancer pi_HH_KidneyStones Boolean pi_HH_KidneyStones pi_HH_Tumor Boolean pi_HH_Tumor pi_HH_BP Boolean pi_HH_BP pi_HH_Diabetes Boolean pi_HH_Diabetes pi_BMI Float pi_BMI pi_BMI_Res String pi_BMI_Res pi_AcceptInsurance Boolean pi_AcceptInsurance pi_AidsRating Integer pi_AidsRating pi_CancerRating Integer pi_CancerRating pi_AlcoDrugaddictRating Integer pi_AlcoDrugaddictRating pi_KidneyStonesRating Integer pi_KidneyStonesRating pi_TumorRating Integer pi_TumorRating pi_DiabetesRating Integer pi_DiabetesRating pi_HiBPRating Integer pi_HiBPRating pi_HealthRating Integer pi_HealthRating
啟動工作流並實際測試業務規則
在選擇了伙伴鏈接和映射了變量後,您就可以按照以下步驟啟動工作流了。
通過單擊 File > Validate Workflow Collection 驗證工作流。
單擊 File > Transfer Workflow Collection 將工作流傳輸到對象存儲和過程引擎中。
在傳輸時,要為文檔選擇一個正確的標題,並選擇存儲該工作流的對象存儲位置。
為文檔選擇默認安全性設置。
單擊 File > Launch Main Workflow 啟動工作流。記住您要選擇 Administrator 作為所有人工任務的默認用戶。然後啟用窗口就會打開,並且帶有一個輸入表單,如圖 13 所示。
圖 13. 啟動工作流
在表單域中填寫正確的值,然後單擊 Launch,如圖 13 所示。
這樣,自動保單處理任務執行。如果規則引擎返回一個肯定響應,那麼這個任務會被轉到電子郵件通知任務。如果規則引擎返回一個否定響應,那麼這個任務就會轉到人工保單處理任務。
要驗證結果,單擊工作空間的 Tasks > Inbox,然後單擊工作項目的步驟處理器。
微調技巧
要考慮使用下面的方法優化您的項目。
如果您在規則工具和 IBM FileNet P8 Process 設計器中使用相同的變量名,那麼 INVOKE 步驟的變量映射是自動完成的。
如果您對最新規則集版本使用 WSDL,您可以修改這些規則並將它們作為小版本部署而不影響工作流。這個工作流會使用最新的規則集完成它的運行。
當您以記錄方式(如,一個 Excel® 電子表格)組織大量作用到相同的變量組的規則,那麼要使用 ILOG JRules 導入功能。它使您能夠導入一個 Excel 文件,然後創建一個決策表。
除了使用示例 XSD 文件,您也可以使用不同的變量和類型創建您自己的 XML 基本文件而開發一個 XSD 文件,用於創建 XOM。然而,對於生產環境需要,您可以考慮使用本文所提供的 XSD,因為它包含了所有的 IBM FileNet P8 類型。
使用 Web Service 整合:HTDS 的一個替代方法
IBM FileNet P8 BPM 和 IBM WebSphere ILOG JRules 實現 Web Services 整合的方法有兩個。如前面 配置工作流調用步驟以執行業務規則 所闡述的,您可以在您的過程工作流中直接使用 HTDS WSDL 並映射輸入和輸出變量。或者,您可以使用 ILOG Rule Studio 的代碼生成器功能為規則集生成一個 Web Service 客戶端。要使用代碼生成器功能,您需要創建一個 Java® 組件,它會使用所生成的客戶端發起 Web Service 調用,然後將組件與過程工作流整合。
結束語
本文闡述了如何使用 Web Services 整合 IBM FileNet P8 BPM 和 IBM WebSphere ILOG JRules。同時,本文也詳細介紹了使用這些工具開發和部署您的業務規則的步驟。IBM FileNet P8 BPM 與 JRules 協同工作的解決方案使我們能夠實現業務決策的快速修改,這會有助於一個組織鞏固它在當前的市場競爭中的位置。這個解決方案能改進業務過程的敏捷性,並為每一位投資人提供正確的工具。