
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:

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:

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.

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.