Kontrolflow
Fem bokse styrer udførelsesflowet i et scenarie.
Til erindring: hver boks har også de implicitte porte in, error og done —
se Porte og forbindelser.
Input / Param
Section titled “Input / Param”Deklarerer scenariets parametre.
| Indgange | ingen |
| Udgange | value — et enkelt objekt { navn: værdi, … } |
| Konfiguration | name (parameterens navn), valueType (dens type og dens standardværdi) |
Værdierne bliver leveret ved starten med --param name=value på kommandolinjen,
eller efterspurgt interaktivt, hvis kørslen når frem til boksen uden en
tilgængelig værdi.
Input »baseUrl« (streng) ──► anmodningens env-portOutput / Return
Section titled “Output / Return”Eksponerer et resultat over for den, der kalder scenariet.
| Indgange | value |
| Udgange | ingen — det er et rent slutpunkt: hverken error eller done |
| Konfiguration | name |
Et scenarie, der bliver kaldt af en Kør scenarie-handling, gør hvert af sine
outputs tilgængeligt på kalderens port output:<name>.
If (hvis)
Section titled “If (hvis)”Forgrening med to veje.
| Indgange | left, right |
| Udgange | then, else |
| Konfiguration | operator: lt, lte, eq, gte, gt, ne, contains — plus left og right som literale værdier |
Et tip: er ingen af operanderne forbundet eller udfyldt, tester boksen blot,
om signalet på in er sandt. Det er »hvis vi er kommet så langt« uden en
eksplicit betingelse.
Switch (forgrening)
Section titled “Switch (forgrening)”Forgrening med N veje.
| Indgange | on |
| Udgange | én case-<id>-port per angivet tilfælde, plus default |
| Konfiguration | cases: en liste af { id, value } |
At foretrække frem for en kæde af If-bokse, så snart der er mere end to udfald: hvert tilfælde er sin egen ledning og er visuelt til at læse.
Retry (prøv igen)
Section titled “Retry (prøv igen)”Grænsen for genoptagelse efter en fejl.
| Indgange | maxAttempts, delay |
| Udgange | attempt (hvert forsøg), exhausted (forsøgene er brugt op) |
| Konfiguration | se nedenfor |
| Felt | Standard | Rolle |
|---|---|---|
maxAttempts | 3 | Maksimalt antal forsøg |
backoff | fixed | fixed, linear eller exponential |
delay + delayUnit | — | Grundforsinkelse (ms, s, min) |
factor | 2 | Vækstfaktor i eksponentiel tilstand |
maxDelay + maxDelayUnit | — | Loft over forsinkelsen |
retryOnError | true | Prøv igen ved en fejl |
retryOnFailure | false | Prøv igen ved en forretningsmæssig fiasko |
retryOnStatus | — | En liste af HTTP-statusser, for eksempel [429, 503] |
Undergrafen, der er forbundet til attempt, udgør det område, der bliver
forsøgt igen. Lykkes det, går udgangen via done. Denne boks har ingen
error-port: den er selv grænsen.
Retry (3, eksponentiel, [429,503]) ├─ attempt ──► HTTP-anmodning ──► Assert └─ exhausted ──► Throw »tjenesten er ikke tilgængelig«