Řízení
Pět bloků řídí tok běhu scénáře.
Připomínka: každý blok má také implicitní porty in, error a done — viz
Porty a propojení.
Input / Param (vstup / parametr)
Section titled “Input / Param (vstup / parametr)”Deklaruje parametry scénáře.
| Vstupy | žádné |
| Výstupy | value — jediný objekt { name: value, … } |
| Konfigurace | name (název parametru), valueType (jeho typ a výchozí hodnota) |
Hodnoty se zadávají při spuštění, pomocí --param name=value na příkazové
řádce, nebo se vyžádají interaktivně, pokud běh k bloku dorazí bez dostupné
hodnoty.
Vstup „baseUrl“ (řetězec) ──► port env požadavkuOutput / Return (výstup / návratová hodnota)
Section titled “Output / Return (výstup / návratová hodnota)”Zpřístupní výsledek tomu, kdo scénář zavolal.
| Vstupy | value |
| Výstupy | žádné — je to propad: ani error, ani done |
| Konfigurace | name |
Scénář volaný akcí Spustit scénář zpřístupní každý ze svých výstupů na portu
output:<name> volajícího bloku.
If (jestliže)
Section titled “If (jestliže)”Dvoucestné větvení.
| Vstupy | left, right |
| Výstupy | then, else |
| Konfigurace | operator: lt, lte, eq, gte, gt, ne, contains — plus left a right jako literální hodnoty |
Tip: není-li zapojen ani vyplněn žádný operand, blok jednoduše otestuje
pravdivost signálu přijatého na in. Je to ono „jestliže jsme došli až sem“ bez
výslovné podmínky.
Switch (přepínač)
Section titled “Switch (přepínač)”Větvení do N cest.
| Vstupy | on |
| Výstupy | jeden port case-<id> na každý deklarovaný případ, plus default |
| Konfigurace | cases: seznam prvků { id, value } |
Vhodnější než kaskáda bloků If, jakmile existují víc než dvě možná zakončení: každý případ je samostatný vodič, vizuálně čitelný.
Retry (opakování)
Section titled “Retry (opakování)”Hranice zotavení po chybě.
| Vstupy | maxAttempts, delay |
| Výstupy | attempt (každý pokus), exhausted (pokusy vyčerpány) |
| Konfigurace | viz níže |
| Pole | Výchozí | Role |
|---|---|---|
maxAttempts | 3 | Maximální počet pokusů |
backoff | fixed | fixed, linear nebo exponential |
delay + delayUnit | — | Základní prodleva (ms, s, min) |
factor | 2 | Koeficient růstu v exponenciálním režimu |
maxDelay + maxDelayUnit | — | Horní mez prodlevy |
retryOnError | true | Opakovat při chybě |
retryOnFailure | false | Opakovat při obchodním neúspěchu |
retryOnStatus | — | Seznam stavových kódů HTTP, například [429, 503] |
Podgraf zapojený na attempt tvoří opakovaný rozsah. V případě úspěchu se
vychází portem done. Tento blok nemá port error: sám je tou hranicí.
Opakování (3, exponenciální, [429,503]) ├─ attempt ──► Požadavek HTTP ──► Assert └─ exhausted ──► Throw „služba nedostupná“