Gå til indhold

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.

Deklarerer scenariets parametre.

Indgangeingen
Udgangevalue — et enkelt objekt { navn: værdi, … }
Konfigurationname (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-port

Eksponerer et resultat over for den, der kalder scenariet.

Indgangevalue
Udgangeingen — det er et rent slutpunkt: hverken error eller done
Konfigurationname

Et scenarie, der bliver kaldt af en Kør scenarie-handling, gør hvert af sine outputs tilgængeligt på kalderens port output:<name>.

Forgrening med to veje.

Indgangeleft, right
Udgangethen, else
Konfigurationoperator: 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.

Forgrening med N veje.

Indgangeon
Udgangeén case-<id>-port per angivet tilfælde, plus default
Konfigurationcases: 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.

Grænsen for genoptagelse efter en fejl.

IndgangemaxAttempts, delay
Udgangeattempt (hvert forsøg), exhausted (forsøgene er brugt op)
Konfigurationse nedenfor
FeltStandardRolle
maxAttempts3Maksimalt antal forsøg
backofffixedfixed, linear eller exponential
delay + delayUnitGrundforsinkelse (ms, s, min)
factor2Vækstfaktor i eksponentiel tilstand
maxDelay + maxDelayUnitLoft over forsinkelsen
retryOnErrortruePrøv igen ved en fejl
retryOnFailurefalsePrøv igen ved en forretningsmæssig fiasko
retryOnStatusEn 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«