使用 Web Services 整合 IBM FileNet P8 BPM 與 IBM WebSphere ILOG JRules

CloudSpace發表於2010-09-17
Ranjeeth Pasupathi, 軟體工程師, IBM
Bharathi Anjeneya, 軟體工程師, IBM

簡介: 當前競爭激烈的業務環境要求一個組織的業務過程必須是排程動態的。一個業務必須能適應和管理快速變化的業務規則及業務過程。通過一個業務規則管理系統(BRMS),您能夠從業務過程中提取出業務規則,並單獨地對它們進行管理,最終實現過程合理化。本文闡述瞭如何整合行業領先的 BRMS 產品 IBM® WebSphere® ILOG® JRules 與綜合業務過程管理系統(BPMS)產品 IBM FileNet® P8 BPM。

引言

現代軟體系統設計強調使用業務規則管理系統(BRMS)管理快速變化的業務規則的需求。您可以改進您的業務過程敏捷性來提供更好的決策方法並能更好地維護您的軟體系統。業務過程管理系統(BPMS)能夠直接利用 BRMS 解決方案所提供的功能。檢視 參考資料 中所包含的更多關於以業務為中心的 BPM 和 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. 醫療保險用例圖
向 iLOG JRules 傳送政策請求。如果不是直接的,則轉到 Accept 政策。如果是,則轉到電子郵件通知。不轉到人工方式。

WebSphere ILOG JRules Rule Studio 是一個基於 Eclipse 的規則開發工具。要建立一個新的規則,我們需要完成以下步驟:

  1. 選擇選單 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Rule Studio 開啟規則工具。
  2. 單擊 File > New > Rule Project,如圖 2 所示。


圖 2. 使用 Rule Studio 建立一個新的規則專案
顯示建立一個新規則專案的下拉選單

  1. 選擇 Standard Rule Project 並輸入一個正確的專案名稱。
  2. 保留專案的預設設定,然後單擊 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。

  1. 將下面的 FileNet XSDs 儲存到您的本地硬碟: http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsdhttp://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd。 檔案 bpmnxpdl_24.xsd 引用檔案 schema_10_xpdl.xsd file 作為它的模式定義。
  2. 編輯 bpmnxpdl_24.xsd 檔案,然後將屬性 schemaLocation 從 http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd 修改為 [localpath]/[filename]
  3. 從 Rule Project Map 中選擇 Import XOM
  4. 在 XOM 選擇視窗選擇 Dynamic Execution Object Model (XSD or WSDL)
  5. 單擊 Add External XSD,如圖 3 所示。


圖 3. 建立 XOM
截圖:按鈕高亮顯示的 Dynamic Execution Object Model

  1. 選擇 FileNet XSD(bpmnxpdl_24.xsd),然後單擊 Finish。這樣會為 Rule Project 建立 XOM。
  2. 單擊 Rule Project Map 的 Create BOM 連結,然後為 BOM 設定名稱。
  3. 保證選中 Create a BOM entry from a XOM,然後單擊 Next
  4. 單擊 Browse XOM,選擇唯一可用的 XOM,然後單擊 OK。這樣就可以看到可用的記錄,如圖 4 所示。


圖 4. 建立 BOM
截圖:按鈕高亮顯示的新 BOM Entry 和高亮顯示的 org.wfmc._2002.xpdl1_0

  1. 選擇第一個記錄,然後單擊 Finish。您可能在建立 BOM 時會遇到一些由 ILOG 的 BOM 物件預設說明的錯誤。
  2. 單擊每一個錯誤,然後在預設說明後加上數字字尾,修正這些錯誤。
  3. 儲存規則專案。然後錯誤應該就會消失。

建立所需要的引數

業務規則需要使用所定義的變數。要建立這些引數,需要完成以下步驟:

  1. 單擊 Rule Project Map 的 Define parameters
  2. 保證 ILOG JRules 所影響的引數都宣告為 OUT 或 IN/OUT。
  3. 儲存例子使用的變數名、型別和說明,包括本文所使用的變數。如表 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,然後設定一個正確的名稱。

建立所需要的業務規則

每一個業務規則都是由一個條件和一組語句構成的。這個條件和語句會使用規則專案所定義的引數。要建立一個業務規則,需要完成以下步驟:

  1. 單擊 File > New > Business Rule,然後設定一個正確的名稱。
  2. 選擇希望在其中建立規則的包。
  3. 單擊 Finish。然後程式碼編輯器就會顯示,您可以在上面編輯規則。
  4. 在程式碼編輯器上建立一個規則,如清單 1 所示,這樣如果一個患者的 BMI 結果是 ObeseUnderweight,則 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 ;

  1. 在程式碼編輯器上建立一個規則,如清單 2 所示,這樣如果一個患者的健康等級超過 60,Accept The Insurance 條件就會被設定為 false


清單 2. 驗證一個可接受的分健康等級的規則

if
     'PI HealthRating' is more than 60
then
     set 'PI Accept The Insurance' to false ;

  1. 在程式碼編輯器中建立一個規則,如清單 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 ;

  1. 初始化輸入變數,如清單 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') ;

  1. 初始化健康等級,如清單 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 ;

  1. 使用一個技術規則計算健康等級,如清單 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;
     }
 }

  1. 使用一個將 BMI 與 BMI 結果關聯的決策表計算 BMI 結果,如圖 5 所示。


圖 5. 使用一個決策表計算 BMI 結果
截圖:包含 PI BMI 中斷的決策表

建立規則流

一個規則流決定了規則集的執行順序。要建立這個規則流,您必須完成以下步驟:

  1. 單擊 Add RuleFlow,設定一個名稱,然後單擊 Finish。這樣就會開啟一個圖形化編輯器。
  2. 單擊 Start 圖示,然後單擊圖表區域建立流的開始點。
  3. 單擊建立結束點。
  4. 按照執行順序將規則從 Project Explorer 拖到圖表區域。
  5. 單擊 Create Transition 圖示,然後單擊開始物件。
  6. 單擊規則,這樣就能建立開始和第一個規則之間的轉換。
  7. 為其他規則和結束點建立類似的轉換。圖 6 顯示的規則流的最後結果。


圖 6. 建立規則流
從 Initialize Input 到 Calculate BMI 到 Check BMI 到 lsInsuranceRejected 到 InitializeHealthRating 到 CalculateHealthRating 到 VerifyHealthRating 的流程

建立規則應用

這個規則應用是將要部署到執行伺服器的部署存檔。要建立這個規則應用,需要完成以下步驟。

  1. 單擊 Project Map 的 Create RuleApp,並設定一個名稱。
  2. 選擇需要新增到存檔的專案和規則集。
  3. 單擊 Finish

這樣就為規則集建立規則應用。您現在可以直接將規則應用部署到執行伺服器或把它匯出為一個 JAR 檔案以備將來部署。

 

測試、除錯和部署業務規則

因為 Rule Studio 是基於 Eclipse 框架的,所以您可以像其他 Java 專案一樣測試和除錯業務規則。

  1. 單擊 Run > Open Run Dialog,然後在上下文選單上配置一個新的規則專案。
  2. 為引數指定初始值,然後單擊 Run。要測試結果,您可以在您的規則中插入一些輸出語句,然後檢查控制視窗的輸出。
  3. 一旦您作好部署的準備後,您就可以右鍵單擊 Project Explorer 中的規則應用,然後單擊 Ruleapp > Deploy。然後部署對話方塊就會顯示。
  4. 保留預設設定,並單擊 Deploy。這樣就會將 RuleApp 存檔部署到 Rule Execution Server。
  5. 要驗證部署是否成功,您可以在 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 開啟 Rule Execution Server。
  6. 使用 resAdmin/resAdmin (ILOG Version 7.0.2) 登入,然後單擊 Explorer 選項卡。
  7. 單擊 RuleApps 樹,然後您最新部署的規則集就會顯示,如圖 7 所示。


圖 7. 部署業務規則
截圖:高亮顯示 WSDL 'Get HTDS WSDL for the ruleset version' 和 'Get HTDS WSDL for the latest ruleset version' 的 UnderwritingApp Ruleset View

 

提取部署的規則的 WSDL

Web Services Description Language (WSDL) 是一個介面定義語言,Web Services 客戶用它確定伺服器所提供的介面明細。完成以下步驟就能夠為部署的 ILOG 規則集生成 WSDL 連結。

  1. 單擊 Start > Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 登入到 Rule Execution Server。
  2. 單擊 Explorer 選項卡,然後選擇和部署規則集。
  3. 單擊 Get WSDL for the latest ruleset version

這樣會開啟一個以 XML 格式顯示所生成的 WSDL 新瀏覽器視窗,如圖 8 所示。您可以在 IBM FileNet P8 Process Designer 使用這個 WSDL 呼叫規則集。


圖 8. 為 ILOG 規則集生成 WSDL
在 Rule Execution Server 上為部署的規則集生成 WSDL

在實現這個示例用例中最重要的一個步驟是設計過程工作流。您可以使用 IBM FileNet P8 Process Designer 按照以下步驟建立這個工作流。

  1. 使用您的帳號登入到 IBM FileNet P8 Workplace。
  2. 單擊螢幕左邊框架的 Author > Advanced Tools 開啟 Process Designer。然後設計器小應用程式就會開啟。
  3. 通過拖放方式從 BOM 畫板上建立工作流步驟,然後建立工作流,其中 Personal Insurance (Auto Underwriting) 是一個呼叫 JRules 的 HTDS 直接自動處理保單的系統任務,如圖 9 所示。參照 參考資料 中關於工作流步驟的資訊。


圖 9. 過程工作流
截圖:建立了 Auto Underwriting 的 Workplace Process Designer,如果為 True,那麼就是電子郵件;如果是 Flase,那麼就是先轉到人工處理,再發電子郵件

工作流變數是工作流中人與系統互動的基礎。它們也用於在各種工作流步驟中實現條件轉發。要建立工作流變數,需要完成以下步驟。

  1. 單擊 Process Designer 的 Workflow Properties 圖示。
  2. 開啟 Data Fields 選項卡。
  3. 雙擊資料表格,使用各種資料型別的變數,如表 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

當您將工作流變數分配給步驟時,它們就會顯示在該步驟的步驟處理器中,而它們一般會以之前步驟填寫的輸入框或資訊框形式出現。記住工作流變數對於所有步驟是全域性的。要分配變數到每一個步驟,需要完成以下步驟。

  1. 單擊您想要分配變數的步驟。
  2. 在步驟屬性皮膚,單擊 Parameters 選項卡。(對於 LaunchStep,單擊 General 選項卡)。
  3. 從 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]
  4. 選擇和移動下面的引數,將它們分配到 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]
  5. 選擇和移動下面的引數,將它們分配到電子郵件通知步驟:
    • InsuranceType[RW]
    • pi_AcceptInsurance[RW]
    • pi_FirstName[RW]
    • pi_LastName[RW]

對於人工任務(Human Underwriting 和 Email Notification),必須分配工作流參與者。要新增一個參與者到一個任務,需要完成以下步驟:

  1. 單擊該步驟。
  2. 在參與者區的 General 選項卡,選中 Participants 單選按鈕。
  3. 選擇有許可權的使用者處理工作專案。為了簡單起見,您可以將使用者 Administrator 分配到所有人工步驟,如圖 10 所示。


圖 10. 關聯工作流參與者
在工作流中為人工步驟分配的工作流參與者

在您將變數和參與者關聯到步驟上後,再通過下面的步驟新增轉發條件。

  1. 單擊 Result = True
  2. 輸入 pi_AcceptInsurance = true 作為轉發條件。
  3. 單擊 Result = False
  4. 輸入 pi_AcceptInsurance = false 作為轉發條件。

要配置 IBM FileNet P8 BPM 使用 Web Services,需要完成下面的步驟。

  1. 單擊 Workplace Admin,開啟 Process Configuration Console 小應用程式。
  2. 連線到您的單獨區域。
  3. 右鍵單擊這個區域,然後單擊 Properties
  4. 單擊 Web Services 選項卡,並選擇核取方塊 Enable Process Designer to enter WSDL links without browsing for Web Services,如圖 11 所示。


圖 11. 使過程設計器直接接收 WSDL URL
在過程配置控制檯啟用允許直接複製-貼上 WSDL URL 到過程設計器的標記

要使用 ILOG 提供的 Web Service,您需要使用來自於 ILOG 執行伺服器的 WSDL 配置一個夥伴連結。要配置這個夥伴連結,需要完成以下步驟。

  1. 單擊 Process Designer 的 Workflow Properties > Web Services
  2. 雙擊 Partner Links 列表的空白行,新增一個新的夥伴連結。
  3. 單擊 Invoke 核取方塊。
  4. 在文字框中,貼上 ILOG 生成的 WSDL。
  5. 保證為 ILOG WSDL 自動選擇 Port Type。最後結果如圖 12 所示。


圖 12. 配置工作流使用 Web Service
截圖:帶有高亮顯示的 iLOG_TDS 和 Invoke partner links;選中 Invoke;Port Type 為 DecisionServiceExpertUnderwriting 的 Web Services 選項卡

  1. 一旦夥伴連結配置好後,單擊 Web Services Invoke,如 Personal Insurance (Auto Underwriting)。這是一個系統任務,所以 Invoke 是選擇列表中所選擇的操作。
  2. 雙擊 Invoke 配置 Web Service 呼叫。
  3. 選擇您剛剛建立的夥伴連結,以及這個操作。對於 ILOG,您可以只選擇 executeDecisionService() 操作。然後過程設計器會將 Web Service 的所有輸入和輸出變數填充到兩個單獨的列表中,其中這兩個列表是您可以用來選擇對映本地變數的。
  4. 對於每一個輸入和輸出變數,從下拉選單選擇正確的本地變數。圖 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

在選擇了夥伴連結和對映了變數後,您就可以按照以下步驟啟動工作流了。

  1. 通過單擊 File > Validate Workflow Collection 驗證工作流。
  2. 單擊 File > Transfer Workflow Collection 將工作流傳輸到物件儲存和過程引擎中。
  3. 在傳輸時,要為文件選擇一個正確的標題,並選擇儲存該工作流的物件儲存位置。
  4. 為文件選擇預設安全性設定。
  5. 單擊 File > Launch Main Workflow 啟動工作流。記住您要選擇 Administrator 作為所有人工任務的預設使用者。然後啟用視窗就會開啟,並且帶有一個輸入表單,如圖 13 所示。


圖 13. 啟動工作流
在輸入框中填寫正確的值然後單擊 Launch 啟動工作流

  1. 在表單域中填寫正確的值,然後單擊 Launch,如圖 13 所示。

這樣,自動保單處理任務執行。如果規則引擎返回一個肯定響應,那麼這個任務會被轉到電子郵件通知任務。如果規則引擎返回一個否定響應,那麼這個任務就會轉到人工保單處理任務。

要驗證結果,單擊工作空間的 Tasks > Inbox,然後單擊工作專案的步驟處理器。

要考慮使用下面的方法優化您的專案。

  • 如果您在規則工具和 IBM FileNet P8 Process 設計器中使用相同的變數名,那麼 INVOKE 步驟的變數對映是自動完成的。
  • 如果您對最新規則集版本使用 WSDL,您可以修改這些規則並將它們作為小版本部署而不影響工作流。這個工作流會使用最新的規則集完成它的執行。
  • 當您以記錄方式(如,一個 Excel® 電子表格)組織大量作用到相同的變數組的規則,那麼要使用 ILOG JRules 匯入功能。它使您能夠匯入一個 Excel 檔案,然後建立一個決策表。
  • 除了使用示例 XSD 檔案,您也可以使用不同的變數和型別建立您自己的 XML 基本檔案而開發一個 XSD 檔案,用於建立 XOM。然而,對於生產環境需要,您可以考慮使用本文所提供的 XSD,因為它包含了所有的 IBM FileNet P8 型別。

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 協同工作的解決方案使我們能夠實現業務決策的快速修改,這會有助於一個組織鞏固它在當前的市場競爭中的位置。這個解決方案能改進業務過程的敏捷性,併為每一位投資人提供正確的工具。

致謝

我們誠摯感謝以下校閱人,感謝他們花費了寶貴時間對本文進行校閱,並對本文的所有方面給出了他們的建議和評論:

  • Chris Berg —— 產品經理(WebSphere BRMS)
  • Andy J Ritchie —— ILOG 開發整合 & 協同(WebSphere BRMS)
  • Jiehua Eva Lu —— 技術聯盟經理(WebSphere BRMS)
  • Srinivas Nv Gannavarapu —— 顧問軟體工程師(企業內容管理)

原文連結:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1004filenetbpmjrules/index.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-674287/,如需轉載,請註明出處,否則將追究法律責任。

相關文章