Přeskočit na obsah

Ří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í.

Deklaruje parametry scénáře.

Vstupyžádné
Výstupyvaluejediný objekt { name: value, … }
Konfiguracename (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žadavku

Output / Return (výstup / návratová hodnota)

Section titled “Output / Return (výstup / návratová hodnota)”

Zpřístupní výsledek tomu, kdo scénář zavolal.

Vstupyvalue
Výstupyžádné — je to propad: ani error, ani done
Konfiguracename

Scénář volaný akcí Spustit scénář zpřístupní každý ze svých výstupů na portu output:<name> volajícího bloku.

Dvoucestné větvení.

Vstupyleft, right
Výstupythen, else
Konfiguraceoperator: 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.

Větvení do N cest.

Vstupyon
Výstupyjeden port case-<id> na každý deklarovaný případ, plus default
Konfiguracecases: 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ý.

Hranice zotavení po chybě.

VstupymaxAttempts, delay
Výstupyattempt (každý pokus), exhausted (pokusy vyčerpány)
Konfiguraceviz níže
PoleVýchozíRole
maxAttempts3Maximální počet pokusů
backofffixedfixed, linear nebo exponential
delay + delayUnitZákladní prodleva (ms, s, min)
factor2Koeficient růstu v exponenciálním režimu
maxDelay + maxDelayUnitHorní mez prodlevy
retryOnErrortrueOpakovat při chybě
retryOnFailurefalseOpakovat při obchodním neúspěchu
retryOnStatusSeznam 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á“