Freigeben über


Verwenden von Filtern mit der Form „Nachrichtenempfang“

Ein Filterausdruck ist ein optionaler Parameter, der auf eine Form vom Typ Empfangen einer Orchestrierung angewendet werden kann, die für die Eigenschaft Aktivieren den Wert Wahr aufweist. Bei Angabe eines Filterausdrucks wird die Orchestrierung nur dann aktiviert, wenn eine eingehende Nachricht den Bedingungen im Filterausdruck entspricht. Ohne Filterausdruck wird die Orchestrierung bei jeder eingehenden Nachricht aktiviert, die die Orchestrierung abonniert hat.

Zum Erstellen eines Filterausdrucks vergleichen Sie eine Eigenschaft einer eingehenden Nachricht auf der linken Seite des Ausdrucks mit einer Konstanten auf der rechten Seite des Ausdrucks. Sie können auch zusammengesetzte Ausdrücke erstellen, indem Sie zwei oder mehr Ausdrücke mit den Operatoren "AND" und "OR" verketten. Sie können den Filterausdruck auch leer lassen. In diesem Fall werden sämtliche Nachrichten akzeptiert.

Im Folgenden finden Sie ein Beispiel für einen Filterausdruck:

InvoiceSchema.Quantity >= 1000  

In diesem Beispiel wird der Orchestrierung eine eingehende Nachricht vorgelegt. Die Orchestrierung verfügt über ein Aktivierungs-Empfangs-Shape (die Activation-Eigenschaft ist auf True festgelegt, sodass der Empfang einer bestimmten Nachricht dazu führt, dass die Orchestrierung ausgeführt wird), wobei der vorherige Filterausdruck darauf angewendet wird. Es wird erwartet, dass die eingehende Nachricht die Eigenschaft Quantity im Namespace InvoiceSchema aufweist. Die Orchestrierung akzeptiert nur Rechnungen für 1.000 oder mehr Artikel, sodass die Runtime-Engine eingehende Nachrichten vor der Ausführung überprüft.

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

Operator 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(Total) >= 100
exists exists ReqMsg(Description) exists

Hinweis

Zeichenfolgenwerte in Filterausdrücken werden in Anführungszeichen eingeschlossen, z. B. ReqMsg(Description) = "Bestellstatus". Zeichenwerte können in Filterausdrücken nicht verwendet werden.

Hinweis

Wenn der aktivierte Empfang einem direkt gebundenen Port zugeordnet ist und Sie anschließend eine Nachricht vom gleichen Typ mit dem gleichen Wert für die im Filter getestete Eigenschaft senden, lösen Sie damit eine Endlosschleife aus. Die Nachricht wird in die MessageBox verschoben, wo sie erneut bearbeitet wird, da sie den Filterkriterien entspricht. Um dies zu verhindern, sollten Sie für den Filter eine andere Eigenschaft festlegen, eine Nachricht eines anderen Typs senden oder den Wert der Eigenschaft vor dem Senden einer Nachricht gleichen Typs ändern.

Weitere Informationen

Konfigurieren der Form 'Empfangen'
Verwenden von Korrelationen in Orchestrierungen
Verwenden von gekennzeichneten Feldern und Eigenschaftenfeldern
Verwenden von Nachrichten in Orchestrierungen