進階原則範例
這個範例會延續簡單原則範例。除了簡單原則範例的住家折扣和商務折扣規則外,還新增數個規則。
新增了高額規則,為高額訂單提供更大的折扣。此規則的優先順序值小於前兩個規則,因此它會覆寫折扣欄位,並且優先順序高於住家折扣規則或商務折扣規則。
此外,還新增了計算總額規則,此規則會根據折扣等級計算總額,並說明如何參考工作流程活動定義的方法,以及如何使用其他動作。這個規則還會示範鏈結行為,因為每當折扣欄位變更時,就會評估一次。此外,CalculateTotal 方法的方法屬性設定顯示為 RuleWriteAttribute。這使得每次執行方法時,都會重新評估受影響的規則 (ErrorTotalRule)。
新增的最後一個規則是偵測錯誤的規則 (在此例中,Total 小於 0)。如果偵測到錯誤,就會暫止執行原則。
最後,新增了 Console.Writeline 呼叫做為每個規則的動作,以便針對每個規則的執行提供更高的可視性,而且您還可以存取參照類型上的靜態方法。您也可以使用追蹤來取得所執行規則的可視性 (如需範例,請參閱 RuleActionTrackingEvent 範例)。
這個範例使用的規則包括:
ResidentialDiscountRule:
IF OrderValue > 500 AND CustomerType = Residential
THEN Discount = 5%
BusinessDiscountRule:
IF OrderValue > 10000 AND CustomerType = Business
THEN Discount = 10%
HighValueDiscountRule:
IF OrderValue > 20000
THEN Discount = 15%
TotalRule:
IF Discount > 0
THEN CalculateTotal(OrderValue, Discount)
ELSE Total = OrderValue
ErrorTotalRule:
IF Total < 0
THEN Error = "Fired ErrorTotalRule"; Halt
透過追蹤,您還可以觀察到規則的評估和執行。如需詳細資訊,請參閱 RuleActionTrackingEvent 範例。
若要建置範例
按一下此主題中的 [下載範例] 來下載範例。
這樣會將範例專案擷取到本機硬碟上。
按一下 [開始],並依序指向 [程式集] 和 [Microsoft Windows SDK],再按一下 [CMD 殼層]。
移至範例的來源目錄。
在命令提示字元上,輸入 MSBUILD <Solution file name>。
若要執行範例
- 在 [SDK 命令提示字元] 視窗中,執行 AdvancedPolicy\bin\debug 資料夾 (若是範例的 VB 版本,則是 AdvancedPolicy \bin 資料夾) 中的 .exe 檔案,該資料夾位於此範例的主要資料夾下方。
請參閱
參考
其他資源
簡單原則範例
Tutorial: Use Rules and Conditions
Using the PolicyActivity Activity
活動範例
Windows Workflow Foundation 範例
Copyright © 2007 by Microsoft Corporation. All rights reserved.