Freigeben über


Erweiterte Richtlinie

Dieses Thema gilt für Windows Workflow Foundation 4.

Dieses Beispiel erweitert das Beispiel für einfache Richtlinien. Zusätzlich zu den Rabattregeln für Privat- und Geschäftskunden aus dem Beispiel für eine einfache Richtlinie wurden mehrere neue Regeln hinzugefügt.

Es wurde eine Regel für hohe Werte hinzugefügt, wodurch ein höherer Rabatt für Bestellungen mit hohem Wert gewährt wird. Diese Regel erhält einen höheren Prioritätswert als die beiden vorhergehenden Regeln, sodass das Rabattfeld überschrieben wird und diese Regel Vorrang vor der Rabattregel für Privatkunden oder Geschäftskunden hat.

Es wurde ebenso eine Regel zum Berechnen der Gesamtsumme hinzugefügt, mit der die Gesamtsumme hinsichtlich der Rabattstufe berechnet wird. Sie zeigt, wie eine in der Workflowaktivität definierte Methode referenziert und wie else-Aktionen verwendet werden. Diese Regel veranschaulicht außerdem das Verkettungsverhalten, da sie jedes Mal dann ausgewertet wird, wenn eine Änderung im Rabattfeld auftritt. Darüber hinaus wird die Attributzuweisung für Methoden mit RuleWriteAttribute für die CalculateTotal-Methode dargestellt. Dies führt dazu, dass betroffene Regeln (ErrorTotalRule) immer dann neu ausgewertet werden, wenn die Methode ausgeführt wird.

Die letzte hinzugefügte Regel dient der Fehlererkennung (in diesem Fall, wenn die Gesamtsumme geringer als 0 (null) ist). Wenn dies auftritt, wird die Richtlinienausführung unterbrochen.

Zuletzt wurden jeder Regel Console.Writeline-Aufrufe als Aktionen hinzugefügt, um die Sichtbarkeit der Regelausführung zu erhöhen, während ebenfalls aufgezeigt wird, dass es möglich ist, auf statische Methoden in referenzierten Typen zuzugreifen. Sie könnten die Überwachung auch verwenden, um die Sichtbarkeit von Regeln bei deren Ausführung zu erhöhen (siehe das RuleActionTrackingEvent-Beispiel).

In diesem Beispiel werden die folgenden Regeln verwendet:

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

Die Auswertung und Ausführung von Regeln kann außerdem über die Verfolgung und Überwachung beobachtet werden. Weitere Informationen finden Sie unter RuleActionTrackingEvent Sample.

So erstellen Sie das Beispiel

  1. Laden Sie das Beispiel herunter, indem Sie in diesem Thema auf Beispiel downloaden klicken.

    Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.

  2. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.

  3. Wechseln Sie zum Quellverzeichnis des Beispiels.

  4. Geben Sie an der Eingabeaufforderung MSBUILD <Name der Projektmappendatei> ein.

So führen Sie das Beispiel aus

  1. Führen Sie im Eingabeaufforderungsfenster des SDK die EXE-Datei im Ordner "AdvancedPolicy\bin\debug" aus (bzw. im Ordner "AdvancedPolicy\bin" für die Visual Basic-Version des Beispiels), der sich unter dem Hauptordner des Beispiels befindet.
Ee960219.Important(de-de,VS.100).gif Hinweis:
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.

<Installationslaufwerk>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<Installationslaufwerk>:\WF_WCF_Samples\WF\Basic\Rules\Policy\AdvancedPolicy

Siehe auch

Verweis

RuleSet
PolicyActivity

Weitere Ressourcen

Simple Policy Sample
Tutorial: Use Rules and Conditions
Using the PolicyActivity Activity
Activities Samples
Windows Workflow Foundation Samples