- Erstellt von Redakteur7 am Feb. 16, 2021
Semantik
Durch das <result>-Element kann der Return-Code des umgebenen <exec>-Elements abgeglichen werden. Damit ist es möglich, die Verarbeitung abzubrechen, falls ein bestimmter Fehlercode bei der Ausführung von <commandline> aufgetreten ist.
Das <commandline>-Element signalisiert nach der Ausführung durch einen sog. Return-Code, ob bei der Verarbeitung des Befehls Fehler oder Warnungen aufgetreten sind. Ist der Return-Code ungleich 0 ist die Bearbeitung nicht ohne Fehler / Warnungen abgelaufen. Der Return-Code ist dabei eine Eigenschaft des umgebenden <exec>-Elements. Das <commandline>-Element setzt also den Return-Code des <exec>-Elements. Dieser Return-Code kann durch <result> mit einem angegebenen Wert abgeglichen werden, hierbei sind auch logische Ausdrücke erlaubt. Stimmt der Return-Code des <exec>-Elements mit dem übergebenen Wert nicht überein, ist also bei der Abarbeitung von <commandline> ein unerwarteter Fehler / eine unerwartete Warnung aufgetreten, bricht <result> an dieser Stelle sofort die Verarbeitung der RCML ab. Nachfolgender Code wird nicht ausgeführt! Ergibt der Abgleich eine Übereinstimmung wird die Verarbeitung ohne Effekt fortgesetzt.
Das <result>-Element kann nur innerhalb des <exec>-Elements notiert werden. Nutzen Sie für eine allgemeinere Fehlerbehandlung <error>.
Attribute
Attributname | Datentyp | Beschreibung | Mögliche Werte | Standardwert | Obligatorisch? |
---|---|---|---|---|---|
return-code | INTEGER | Ermöglicht es, einen Fehlercode oder einen logischen Ausdruck anzugeben. <result> vergleicht den angegebenen Wert mit dem Return-Code des <exec>-Elements, der durch das vorangegangene <commandline>-Element gesetzt wurde. Stimmt der übergebene Ausdruck mit dem Return-Code nicht überein, wird die Verarbeitung sofort abgebrochen. | Fehlercodes und logische Ausdrücke. Mehr unter Beispiel | — |
Subelemente / Inhalt
Das <result>-Element besitzt keine Subelemente und kann keinen Inhalt enthalten.
Variablenbindungen
Das <result>-Element besitzt keine Variablenbindungen.
Beispiel
Einige Beispielwerte für return-code:
400
400 | 401 (400 oder 401).
true (alles außer 0, also alles außer erfolgreich beendet).
Im folgenden Beispiel wird der Return-Code eines einfach copy-Prozesses abgeglichen. Die Verarbeitung soll abgebrochen werden, falls die Bearbeitung nicht erfolgreich beendet wurde (irgendein Fehler oder irgendeine Warnung auftrat).
<rcml> <process id="ExampleProcess" name="example process"> <exec id="copyProcess" workdir="workdir"> <workdir id="workdir" home="./WORK" /> <!-- Setze 2 Parameter: Pfad zur zu kopierenden Datei und Zielpfad. --> <param name="infile" value="${inputFile.getFile().getAbsolutePath()}"/> <param name="outfile" value="${process['copy.output']}"/> <!-- Datei kopieren. --> <commandline processor="velocity">cmd /C copy $infile $outfile</commandline> <!-- Nur wenn return-code = 0 ist (erfolgreich), Verarbeitung fortsetzen. --> <result return-code="0" /> </exec> </process> </rcml>
Das <result>-Element muss nach dem <commandline>-Element stehen!
Bei fehlender Übereinstimmung wird die Verarbeitung sofort abgebrochen und nachfolgender Code nicht ausgeführt!
- Keine Stichwörter