共用方式為


使用商務規則處理貸款 (BizTalk Server 範例)

「使用商務規則處理貸款」範例將示範如何使用協調流程內管理的規則集,以及如何使用稱為「事實」的輸入組合,計算所處理文件內某些欄位的設定。 事實可以是呼叫 .NET 架構組件的結果,從訊息的 XML 擷取的值,或是從資料庫擷取的資料。 此範例還會示範,如何隨時變更規則來影響後續計算,而不需重新部署。

此範例的用途

此範例將使用簡化的貸款處理實例內容示範這些功能。 BizTalk Server 協調流程會選取並處理 XML 訊息格式的貸款申請,亦稱為貸款案件。 此協調流程會使用「商務規則引擎」根據規則評估內送訊息、透過套用規則的結果修改訊息,然後將訊息做為檔案寫入輸入資料夾中。

根據來自數個來源的事實,包括正在處理的訊息,此範例會設定正在處理的訊息 的 IncomeStatusCommitmentsStatusEmploymentStatusResidencyStatus 元素。

可在何處找到此範例

<範例路徑>\Business Rules\Loans Processing using Business Rules\

下表顯示此範例中的檔案,並描述其用途。

檔案 Description
Case.xsd 內送貸款申請的結構描述檔,亦稱為貸款案件。
Cleanup.bat 用來解除部署組件,並將這些組件從全域組件快取 (GAC) 移除。 移除傳送埠和接收埠。 視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。
Create_CustInfo_Table.sql SQL 指令碼,用於建立 SQL Northwind 範例資料庫中的 CustInfo 資料表。
LoanProcessorBinding.xml 用於自動化設定,例如連接埠繫結。
LoansProcessor.btproj、LoansProcessor.sln 此範例的 BizTalk 專案和方案檔。
My Sample Service.odx 此範例的 BizTalk Server 協調流程。
sampleLoan.xml 範例輸入檔,其中 XML 結構結尾的四個狀態項目未包含值。
Setup.bat 用來建置和初始化此範例。
在 \CreateRules 資料夾中:

App.ico、AssemblyInfo.cs、Case.xsd、CreateLoanProcessingPolicy.csproj、CreateLoanProcessingPolicy.sln、WriteToBRL.cs
Visual C# 專案、方案、原始程式及相關檔案,用來建立以程式設計方式建立規則集中各項規則的應用程式。 如需以程式設計方式建置的規則集範例,請參閱原始程式檔 WriteToBRL.cs。
在 \myFactRetriever 資料夾中:

AssemblyInfo.cs

FactRetrieverForLoansProcessing.cs

myFactRetriever.csproj

myFactRetriever.sln
Visual C# 專案、方案、原始程式集相關檔案,用來建立從之前新增至 Northwind 範例 SQL Server 資料庫中的 CustInfo 資料表擷取資訊的組件。

建置和初始化此範例

  1. 確定您的電腦上已安裝 Northwind 資料庫。

    重要

    若要執行此範例,您必須有 Northwind SQL Server範例資料庫。 若要下載,請移至Northwind 和 pubs 範例資料庫,以取得 Microsoft SQL Server

  2. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\Business Rules\Loans Processing using Business Rules

  3. 執行檔案 Setup.bat,這會執行下列動作:

    • 清除 GAC 以便刪除之前執行此範例所留下的資料。

    • 編譯及部署事實擷取器程式 myFactRetreiever.dll。

    • 使用 SQL 指令碼檔案 Create_CustInfo_Table.sql、將名為 CustInfo 的資料表新增至 Northwind 範例 SQL 資料庫。

    • 清除共用 SQL 規則存放區,以便刪除之前執行此範例所留下的資料。

    • 建立、發佈及部署貸款處理規則集的最新版本 (1.0)。

      注意

      您可以使用 BizTalk Server 提供的「商務規則編輯器」工具檢查以程式設計方式設定的規則。

    • 建立此範例的輸入 (In) 和輸出 (Out) 資料夾。

    • 編譯並部署此範例的其餘 Visual Studio 專案,包括包含您用來協調此範例之協調流程的 BizTalk 專案。

    • 建立並繫結 BizTalk Server 接收位置以及傳送和接收埠。

      注意

      這個範例會在建立和繫結連接埠時顯示下列警告:

      Warning: Receive handler not specified for receive location "LoansProcessor_1.0.0.0_LoansProcessor.My_Sample_Service_Incoming_ReceiveLocation"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "LoansProcessor.My_Sample_Service"; updating with first available host.

      您可以安全地忽略這些警告。 (繫結檔案已省略主控件名稱與接收處理常式,以配合使用者安裝中可能的命名差異)。

    • 啟用接收位置並啟動傳送埠。

    • 登錄並啟動協調流程。

注意

  • 如果您的 BizTalk 主控件名稱不是 BizTalkServerApplication,請修改 Setup.bat 檔和 LoanProcessorBinding.xml 檔以反映正確的主控件名稱。
  • 在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。
  • 若您選擇不執行 Setup.bat 檔案就開啟和建置此範例中的專案,您必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 使用此金鑰組簽署所產生的組件。
  • 若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。

執行此範例

執行使用商務規則處理貸款範例

  1. 將檔案複本貼到 \In 資料夾中 sampleLoan.xml。

  2. 觀察在 Out資料夾中建立的 .xml 檔案。它包含輸入 XML 訊息,其中包含在 XML 結構結尾新增至下列四個狀態元素的資料: IncomeStatusCommitmentsStatusEmploymentStatusResidencyStatus

    您可以使用「商務規則編輯器」工具變更規則集中的規則,然後重新部署這些規則。

使用商務規則編輯器工具變更規則集中的一或多項規則

  1. 按一下[開始],指向 [程式],指向[Microsoft BizTalk Server 20xx],然後按一下 [商務規則編輯器]。

    注意

    在支援使用者帳戶控制 (UAC) 的系統上,您可能需要使用系統管理權限來執行工具。 若要這樣做,請以滑鼠右鍵按一下應用程式,然後選取 [ 以系統管理員身分執行]。

  2. 在 [SQL Server] 對話方塊中,按一下 [確定] 以連線到規則存放區。

  3. [原則總管] 的 [LoanProcessing]節點下方,以滑鼠右鍵按一下 [版本 1.0 – 已部署] 節點,然後按一下 [ 複製]。

  4. 以滑鼠右鍵按一下 [LoanProcessing],然後按一下 [ 貼上]。

  5. 以一種方式變更任何規則或動作,以產生 IncomeStatusCommitmentsStatusEmploymentStatusResidencyStatus 元素的不同值。 請確定您也變更了負部分的值 (基本上, Else 子句) 您選擇變更的任何規則。

    下表顯示此範例使用的規則集。 除非有另外特別說明,否則事實會來自內送 XML 訊息。 字串 (db) 表示,事實的來源為資料庫。

    規則編號 規則名稱 描述
    1 Income Status Rule IF BasicSalary + OtherIncome> 0

    THEN IncomeStatus = 有效
    2 Commitments Status Rule 如果識別碼 == 識別碼 (db)



    IF CreditCardBalance (db) > 500

    THEN CommitmentsStatus =

    "Compute Commitments"
    3 Employment Status Rule IF EmploymentType |TimeInMonths> 18

    THEN EmploymentStatus = 有效
    4 Residency Status Rule IF PlaceOfResidence |TimeInMonths> 18

    THEN ResidencyStatus = Valid
    !1, !2, !3, !4 Negation Rules 條件是規則 1-4 中所述之對應條件的邏輯 NOT 。 結果動作為所設定字串的變更。
  6. 以滑鼠右鍵按一下 [1.1 版] (未儲存) 節點,然後按一下 [ 儲存]。

  7. 以滑鼠右鍵按一下 1.1 版 節點,然後按一下 [ 發佈]。

  8. 以滑鼠右鍵按一下 1.1 版 節點,然後按一下 [ 部署]。

  9. 等候 60 秒,讓變更傳播到共用 SQL Server 規則存放區。

  10. 將檔案複本貼到 [ In] 資料夾中 sampleLoan.xml。

  11. 觀察在 Out資料夾中建立的 .xml 檔案。它包含輸入 XML 訊息,其中包含在 XML 結構結尾新增至下列四個狀態元素的資料: IncomeStatusCommitmentsStatusEmploymentStatusResidencyStatus。 視此程序步驟 5 中所做的變更本質而定,新增至這些項目的資料可能會與上一次執行時的資料不同。

註解

如果您要檢視此範例的追蹤資訊,您必須使用 [商務規則引擎部署精靈] 解除部署再重新部署相關的規則集 (貸款處理)。

此範例將示範如何使用商務規則,在協調流程內以規則的形式套用商務原則。 此外還會示範如何變更原則,以及在協調流程中動態反映原則的變更,而不需重新編譯或重新部署協調流程方案。

此範例的輸入貸款案件是 XML 訊息,其結構如下:

    Name  
    ID  
    Income  
        BasicSalary  
        OtherIncome  
    EmploymentType  
        TimeInMonths  
    PlaceOfResidence  
        TimeInMonths  
    CommitmentsStatus  
    IncomeStatus  
    EmploymentStatus  
    ResidencyStatus  

另請參閱

商務規則 (BizTalk Server Samples 資料夾)