Bedingte Verarbeitung von Schritten

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Konfigurieren von Aufträgen >

Bedingte Verarbeitung von Schritten

Um Schritte abhängig von einer Bedingung zu verarbeiten, fügen Sie einen Schritt vom Typ "Auswahlschritt" hinzu. Ein solcher Schritt besteht aus zwei Teilen: einem "Wenn"-Teil und einem "andernfalls"-Teil.

ConditionalStep

Abstrakte Darstellung eines Auftrags, der bedingte Verarbeitungsschritte enthält

Wie in der Abbildung oben gezeigt, wird sowohl für den "Wenn"-Teil, als auch für den "Andernfalls"-Teil ein Ausführungsschritt benötigt. Für den "Wenn"-Teil wird außerdem ein Ausdruck benötigt. Dieser Ausdruck gibt an, welcher der beiden Teile bei Ausführung des Auftrags ausgeführt werden soll. Wenn das Ergebnis des "Wenn"-Ausdrucks der Boolesche Wert true ist, so wird Schritt C ausgeführt. Andernfalls wird Schritt D ausgeführt. Die Verarbeitungssequenz des oben dargestellten abstrakten Auftrags ist also die folgende (vorausgesetzt es treten bei der Ausführung keine Fehler auf):

 

1.Schritt A
2.Schritt B
3.Schritt C oder D, je nach Ausdruck
4.Schritt E
5.Schritt F

 

So wird z.B. im unten gezeigten Schritt die vordefinierte Funktion delete nur dann ausgeführt, wenn das Ergebnis des Ausdruck "fileexists" der Boolesche Wert true ist.

expression_field_when

 

Beachten Sie, dass "fileexists" in einem vorherigen Schritt (oder eventuell in einem Input-Parameter) deklariert worden sein muss, z.B.:

variable_assignment

 

Andernfalls würde ein Syntaxvalidierungsfehler angezeigt:

syntax_validation_error

 

 

Wenn das Ergebnis eines "Auswahlschritts" an einen anderen Schritt übergeben oder als bestimmter Typ deklariert werden soll, muss sichergestellt werden, dass in jeder "Wenn" und "Andernfalls"-Bedingung derselbe Rückgabetyp erzeugt wird. Andernfalls ist der Rückgabetyp des "Auswahlschritts" der gemeinsame Rückgabetyp aller "Wenn" und "Andernfalls"-Verzweigungen, wodurch es zu Validierungsfehlern kommen kann.

 

Betrachten wir als Beispiel einen Auftrag, in dem der Wert eines numerischen Parameters Temperatur überprüft wird, um zu ermitteln, ob das Wetter heiß oder normal ist. Ein solcher Auftrag könnte folgendermaßen aussehen:

fs_conditional_job

Beachten Sie, dass Rückgabetyp deklarieren als auf "String" gesetzt wurde. Wenn die Temperatur größer als ein bestimmter Wert ist (in diesem Beispiel 35), wird ein String-Ausdruck berechnet, nämlich "Es ist heiß". 'Andernfalls wird der String-Ausdruck "Normale Temperatur" berechnet. In diesem Fall erzeugt sowohl die "Wenn" als auch die "Andernfalls"-Bedingung einen String. Daher kann der Auftrag erfolgreich gespeichert und ausgeführt werden.

 

Hätten wir die "Andernfalls"-Bedingung jedoch leer gelassen, hätte der Auftrag, wie unten gezeigt, einen Validierungsfehler ausgelöst.

fs_conditional_job2

Der Grund dafür ist, dass der erwartete Rückgabetyp des Auftrags "String" ist (wie in der Einstellung Rückgabetyp deklarieren als definiert). Wenn die "Andernfalls" Verzweigung nicht definiert ist, ist das Ergebnis der Berechnung leer. Ein leeres Ergebnis ist nicht mit dem Typ "String" identisch. Dadurch wird ein Validierungsfehler ausgelöst.

 

In dem auf dieser Seite gezeigten Auftrag werden FlowForce-Ausdrücke verwendet. Eine Einführung in FlowForce-Ausdrücke finden Sie unter Arbeiten mit FlowForce-Ausdrücken.


© 2019 Altova GmbH