Ga naar inhoud

Besturing

Vijf vakjes bepalen de uitvoeringsstroom van een scenario.

Ter herinnering: elk vakje heeft ook de impliciete poorten in, error en done — zie Poorten en verbindingen.

Declareert de parameters van het scenario.

Invoergeen
Uitvoervalueéén enkel object { naam: waarde, … }
Configuratiename (de naam van de parameter), valueType (het type en de standaardwaarde)

De waarden worden bij de start meegegeven, met --param nom=valeur op de opdrachtregel, of interactief gevraagd als de uitvoering bij het vakje aankomt zonder dat er een waarde beschikbaar is.

Invoer “baseUrl” (tekenreeks) ──► poort env van het verzoek

Biedt een resultaat aan de aanroeper van het scenario aan.

Invoervalue
Uitvoergeen — dit is een put: geen error en geen done
Configuratiename

Een scenario dat door een actie Scenario uitvoeren wordt aangeroepen, maakt elk van zijn uitvoeren beschikbaar op de poort output:<naam> van de aanroeper.

Vertakking met twee wegen.

Invoerleft, right
Uitvoerthen, else
Configuratieoperator: lt, lte, eq, gte, gt, ne, contains — plus left en right als letterlijke waarden

Een tip: als er geen enkele operand is aangesloten of ingevuld, test het vakje gewoon de waarheid van het signaal dat op in binnenkomt. Dat is het “als we tot hier zijn gekomen” zonder expliciete voorwaarde.

Vertakking met N wegen.

Invoeron
Uitvoeréén poort case-<id> per opgegeven geval, plus default
Configuratiecases: een lijst van { id, value }

Beter dan een cascade van If zodra er meer dan twee uitkomsten zijn: elk geval is een aparte draad, visueel goed leesbaar.

Grens voor herstel na een fout.

InvoermaxAttempts, delay
Uitvoerattempt (elke poging), exhausted (pogingen op)
Configuratiezie hieronder
VeldStandaardRol
maxAttempts3Maximumaantal pogingen
backofffixedfixed, linear of exponential
delay + delayUnitBasisvertraging (ms, s, min)
factor2Groeifactor in de exponentiële modus
maxDelay + maxDelayUnitPlafond voor de vertraging
retryOnErrortrueOpnieuw proberen bij een fout
retryOnFailurefalseOpnieuw proberen bij een functionele mislukking
retryOnStatusLijst met HTTP-statussen, bijvoorbeeld [429, 503]

De subgraaf die op attempt is aangesloten, vormt het bereik dat opnieuw wordt geprobeerd. Bij succes gaat de uitgang via done. Dit vakje heeft geen error-poort: het is zelf de grens.

Opnieuw proberen (3, exponentieel, [429,503])
├─ attempt ──► HTTP-verzoek ──► Assert
└─ exhausted ──► Throw “dienst niet beschikbaar”