使用商務規則處理貸款 (BizTalk Server 範例)
「使用商務規則處理貸款」範例將示範如何使用協調流程內管理的規則集,以及如何使用稱為「事實」的輸入組合,計算所處理文件內某些欄位的設定。 事實可以是呼叫 .NET 架構組件的結果,從訊息的 XML 擷取的值,或是從資料庫擷取的資料。 此範例還會示範,如何隨時變更規則來影響後續計算,而不需重新部署。
此範例的用途
此範例將使用簡化的貸款處理實例內容示範這些功能。 BizTalk Server 協調流程會選取並處理 XML 訊息格式的貸款申請,亦稱為貸款案件。 此協調流程會使用「商務規則引擎」根據規則評估內送訊息、透過套用規則的結果修改訊息,然後將訊息做為檔案寫入輸入資料夾中。
根據來自數個來源的事實,包括正在處理的訊息,此範例會設定正在處理的訊息 的 IncomeStatus、 CommitmentsStatus、 EmploymentStatus和 ResidencyStatus 元素。
可在何處找到此範例
<範例路徑>\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 資料表擷取資訊的組件。 |
建置和初始化此範例
確定您的電腦上已安裝 Northwind 資料庫。
重要
若要執行此範例,您必須有 Northwind SQL Server範例資料庫。 若要下載,請移至Northwind 和 pubs 範例資料庫,以取得 Microsoft SQL Server。
在命令視窗中,瀏覽至下列資料夾:
<範例路徑>\Business Rules\Loans Processing using Business Rules
執行檔案 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。
執行此範例
執行使用商務規則處理貸款範例
將檔案複本貼到 \In 資料夾中 sampleLoan.xml。
觀察在 Out資料夾中建立的 .xml 檔案。它包含輸入 XML 訊息,其中包含在 XML 結構結尾新增至下列四個狀態元素的資料: IncomeStatus、 CommitmentsStatus、 EmploymentStatus和 ResidencyStatus。
您可以使用「商務規則編輯器」工具變更規則集中的規則,然後重新部署這些規則。
使用商務規則編輯器工具變更規則集中的一或多項規則
按一下[開始],指向 [程式],指向[Microsoft BizTalk Server 20xx],然後按一下 [商務規則編輯器]。
注意
在支援使用者帳戶控制 (UAC) 的系統上,您可能需要使用系統管理權限來執行工具。 若要這樣做,請以滑鼠右鍵按一下應用程式,然後選取 [ 以系統管理員身分執行]。
在 [SQL Server] 對話方塊中,按一下 [確定] 以連線到規則存放區。
在 [原則總管] 的 [LoanProcessing]節點下方,以滑鼠右鍵按一下 [版本 1.0 – 已部署] 節點,然後按一下 [ 複製]。
以滑鼠右鍵按一下 [LoanProcessing],然後按一下 [ 貼上]。
以一種方式變更任何規則或動作,以產生 IncomeStatus、 CommitmentsStatus、 EmploymentStatus和 ResidencyStatus 元素的不同值。 請確定您也變更了負部分的值 (基本上, 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 。 結果動作為所設定字串的變更。 以滑鼠右鍵按一下 [1.1 版] (未儲存) 節點,然後按一下 [ 儲存]。
以滑鼠右鍵按一下 1.1 版 節點,然後按一下 [ 發佈]。
以滑鼠右鍵按一下 1.1 版 節點,然後按一下 [ 部署]。
等候 60 秒,讓變更傳播到共用 SQL Server 規則存放區。
將檔案複本貼到 [ In] 資料夾中 sampleLoan.xml。
觀察在 Out資料夾中建立的 .xml 檔案。它包含輸入 XML 訊息,其中包含在 XML 結構結尾新增至下列四個狀態元素的資料: IncomeStatus、 CommitmentsStatus、 EmploymentStatus和 ResidencyStatus。 視此程序步驟 5 中所做的變更本質而定,新增至這些項目的資料可能會與上一次執行時的資料不同。
註解
如果您要檢視此範例的追蹤資訊,您必須使用 [商務規則引擎部署精靈] 解除部署再重新部署相關的規則集 (貸款處理)。
此範例將示範如何使用商務規則,在協調流程內以規則的形式套用商務原則。 此外還會示範如何變更原則,以及在協調流程中動態反映原則的變更,而不需重新編譯或重新部署協調流程方案。
此範例的輸入貸款案件是 XML 訊息,其結構如下:
Name
ID
Income
BasicSalary
OtherIncome
EmploymentType
TimeInMonths
PlaceOfResidence
TimeInMonths
CommitmentsStatus
IncomeStatus
EmploymentStatus
ResidencyStatus