Steuerung
Fünf Bausteine steuern den Ausführungsfluss eines Szenarios.
Zur Erinnerung: Jeder Baustein besitzt außerdem die impliziten Ports in,
error und done — siehe Ports und Verbindungen.
Input / Param (Eingang / Parameter)
Section titled “Input / Param (Eingang / Parameter)”Deklariert die Parameter des Szenarios.
| Eingänge | keine |
| Ausgänge | value — ein einzelnes Objekt { name: value, … } |
| Konfiguration | name (der Name des Parameters), valueType (sein Typ und sein Standardwert) |
Die Werte werden beim Start übergeben, per --param name=value auf der
Befehlszeile, oder interaktiv abgefragt, falls die Ausführung den
Baustein ohne verfügbaren Wert erreicht.
Eingang „baseUrl“ (Zeichenkette) ──► env-Port der AnfrageOutput / Return (Ausgang / Rückgabe)
Section titled “Output / Return (Ausgang / Rückgabe)”Stellt dem Aufrufer des Szenarios ein Ergebnis zur Verfügung.
| Eingänge | value |
| Ausgänge | keine — es ist eine Senke: weder error noch done |
| Konfiguration | name |
Ein von einer Aktion Szenario ausführen aufgerufenes Szenario stellt
jeden seiner Ausgänge auf dem Port output:<name> des Aufrufers zur
Verfügung.
If (Wenn)
Section titled “If (Wenn)”Zweiweg-Verzweigung.
| Eingänge | left, right |
| Ausgänge | then, else |
| Konfiguration | operator: lt, lte, eq, gte, gt, ne, contains — sowie left und right als Literalwerte |
Tipp: Ist kein Operand verdrahtet oder gesetzt, prüft der Baustein
einfach den Wahrheitswert des auf in empfangenen Signals. Das ist das
„wenn wir bis hierhin gekommen sind“ ohne explizite Bedingung.
Switch (Weiche)
Section titled “Switch (Weiche)”N-Weg-Verzweigung.
| Eingänge | on |
| Ausgänge | ein Port case-<id> pro deklariertem Fall, sowie default |
| Konfiguration | cases: eine Liste aus { id, value } |
Einer Kaskade von If-Bausteinen vorzuziehen, sobald es mehr als zwei Ausgänge gibt: Jeder Fall ist eine eigene, visuell übersichtliche Verbindung.
Retry (Wiederholen)
Section titled “Retry (Wiederholen)”Grenze für die Fehlerbehandlung.
| Eingänge | maxAttempts, delay |
| Ausgänge | attempt (jeder Versuch), exhausted (Versuche erschöpft) |
| Konfiguration | siehe unten |
| Feld | Standard | Rolle |
|---|---|---|
maxAttempts | 3 | Maximale Anzahl an Versuchen |
backoff | fixed | fixed, linear oder exponential |
delay + delayUnit | — | Basisverzögerung (ms, s, min) |
factor | 2 | Wachstumsfaktor im exponentiellen Modus |
maxDelay + maxDelayUnit | — | Obergrenze der Verzögerung |
retryOnError | true | Bei einem Fehler wiederholen |
retryOnFailure | false | Bei einem fachlichen Fehlschlag wiederholen |
retryOnStatus | — | Liste von HTTP-Statuscodes, zum Beispiel [429, 503] |
Der an attempt angeschlossene Teilgraph bildet den wiederholten Bereich.
Bei Erfolg erfolgt der Ausgang über done. Dieser Baustein hat keinen
error-Port: Er selbst ist die Grenze.
Retry (3, exponentiell, [429,503]) ├─ attempt ──► HTTP-Anfrage ──► Assert └─ exhausted ──► Throw „Dienst nicht verfügbar“