Show TOC

ifWithoutElseLocate this document in the navigation structure

Verwendung

Wenn die if -Bedingung von ifWithoutElse den Wert true liefert, wird der Eingangswert von then als Ergebnis zurückgegeben. Auf diese Weise lässt sich diese Funktion in Zielfeld-Mappings als Filter einsetzen.

Und was gibt die Funktion als Else-Wert zurück?

Um die untershiedlichen Fälle zu untersuchen, in denen die if -Bedingung nicht den Wert true liefert, gehen wir von folgender Ausgangs-Message aus:

Abbildung 1: Outbound-Message

In dieser Struktur können Email-Adressen und Telefonnummern einer Person (Wurzelelement Person ) innerhalb eines mehrfach auftretenden Elements communication erfasst werden. Das Element phoneNumber der Ausgangs-Message kann verschiedene Typen haben. Sie sind als Aufzählung (Enumeration) für das Attribut type des Elements hinterlegt. Die Werte der Aufzählung sind private , office und fax . Eine Testinstanz zur gegebenen Ausgangs-Message könnte beispielsweise so aussehen:

Abbildung 2: Testinstanz

Der Else-Wert von ifWithoutElse hängt davon ab, ob das Ergebnis dieser Funktion an ein Zielfeld oder an eine Funktion übergeben wird. Wir schauen uns nun diese beiden Fälle an Hand der vorgestellten Ausgangs-Message und der Testinstanz an. In beiden Fällen sollen jeweils nur die Faxnummern an ein Zielfeld faxNumber übergeben werden.

Else-Wert für Zielfelder

In dem in der folgenden Tabelle dargestellten Zielfeld-Mapping wird der Ergebniswert von ifWithoutElse direkt an das Zielfeld faxNumber übergeben.

Abbildung 3: Else-Wert für Zielfelder

In solchen Fällen möchte man entweder das Zielelement faxNumber erzeugen und phoneNumber als Faxnummer übernehmen oder das Zielelement soll überhaupt nicht erzeugt werden. Entsprechend erzeugt ifWithoutElse den Wert ResultList.SUPPRESS , wenn die if-Bedingung nicht erfüllt ist. Die zweite Spalte der Tabelle zeigt die Queue für ifWithoutElse in diesem Zielfeld-Mapping mit der obigen Testinstanz an: Immer dann, wenn type ungleich " fax " ist, steht ResultList.SUPPRESS in der Queue.

Else-Wert für Funktionen

Wenn Sie den Ergebniswert von ResultList.SUPPRESS an eine Standardfunktion mit mehreren Eingabeparametern übergeben, können zwei Anwendungsfälle unterschieden werden:

  • ifWithoutElse verhält sich wie ein Filter. Wenn nur diejenigen Werte in der folgenden Funktion als Eingabeparamter von Interesse sind, bei denen beim Ausfiltern die if-Bedingung erfüllt war, wählen Sie bei ifWithoutElse als Else-Wert den leeren String. In diesem Fall interpretiert die Standardfunktion die Eingabe nicht als Wert und überspringt ihn.

  • Wenn Eingabequeues der Standardfunktion synchronisiert sein sollen, soll ifWithoutElse den Wert ResultList.SUPPRESS liefern. In diesem Fall überspringt die Standardfunktion die SUPPRESS-Werte nicht.