Freigeben über


Verwenden von Filtern beim Element "Nachricht empfangen".

Ein Filterausdruck ist ein optionaler Parameter, der auf eine Empfangsform in der Orchestrierung angewendet werden kann, um die Activate-Eigenschaft auf True zu setzen. Wenn ein Filterausdruck angegeben wird, wird die Orchestrierung nur aktiviert, wenn eine eingehende Nachricht mit den im Filterausdruck angegebenen Bedingungen übereinstimmt. Wenn kein Filterausdruck angegeben ist, wird jede eingehende Nachricht, auf die die Orchestrierung abonniert ist, die Orchestrierung aktivieren.

Zum Erstellen eines Filterausdrucks vergleichen Sie eine Eigenschaft einer eingehenden Nachricht auf der linken Seite des Ausdrucks mit einer Konstante auf der rechten Seite des Ausdrucks. Sie können auch zusammengesetzte Ausdrücke erstellen, indem Sie die AND- und OR-Operatoren auf zwei oder mehr Ausdrücke anwenden. Sie können auch den Filterausdruck leer lassen, in diesem Fall werden alle Nachrichten akzeptiert.

Ein Filterausdruck sieht möglicherweise wie folgt aus:

InvoiceSchema.Quantity >= 1000  

In diesem Beispiel wird der Orchestrierung eine eingehende Nachricht angezeigt. Die Orchestrierung verfügt über ein Aktivierungs-Empfangs-Shape (die Aktivierungseigenschaft ist auf "True " festgelegt, sodass der Empfang einer bestimmten Nachricht dazu führt, dass die Orchestrierung ausgeführt wird) mit dem vorhergehenden Filterausdruck, der darauf angewendet wird. Es wird erwartet, dass die eingehende Nachricht eine Eigenschaft namens "Quantity" im Namespace InvoiceSchema hat. Die Orchestrierung akzeptiert nur Rechnungen für 1000 oder mehr Elemente, sodass das Laufzeitmodul die eingehende Nachricht überprüft, bevor sie ausgeführt wird.

In der folgenden Tabelle sind Operatoren aufgeführt, die Sie in Filterausdrücken verwenden können.

Bediener BESCHREIBUNG Beispiel
== gleich ReqMsg(Total) == 100
!= not equal to (ungleich) ReqMsg(Total) != 100
< Kleiner als ReqMsg(Total) < 100
> Größer als ReqMsg(Total) > 100
<= Kleiner oder gleich ReqMsg(Total) <= 100
>= Größer oder gleich ReqMsg(Gesamt) >= 100
existiert existiert ReqMsg(Description) ist vorhanden.

Hinweis

Zeichenfolgenwerte in Filterausdrücken werden in Anführungszeichen eingeschlossen, z. B.: ReqMsg(Description) = "Bestellstatus". Sie können keinen Zeichenwert in einem Filterausdruck verwenden.

Hinweis

Wenn Ihr aktivierter Empfang einem direkt gebundenen Port zugeordnet ist und Sie anschließend eine Nachricht desselben Typs mit demselben Wert für die im Filter getestete Eigenschaft senden, verursachen Sie eine Endlosschleife. Die Nachricht wird in das MessageBox-Objekt verschoben, wo sie wieder aufgenommen wird, da sie den Filterkriterien entspricht. Um dies zu vermeiden, sollten Sie entweder nach einer anderen Eigenschaft filtern, eine Nachricht eines anderen Typs senden oder den Wert der Eigenschaft vor dem Senden einer Nachricht desselben Typs ändern.

Siehe auch

Empfangsform konfigurieren
Verwenden von Korrelationen in Orchestrierungen
Verwenden von Unterscheidungsmerkmalen und Eigenschaftsfeldern
Verwenden von Nachrichten in Orchestrierungen