Controllo
Cinque riquadri governano il flusso di esecuzione di uno scenario.
Promemoria: ogni riquadro possiede anche le porte implicite in, error e
done — si veda Porte e collegamenti.
Input / Param (input / parametro)
Section titled “Input / Param (input / parametro)”Dichiara i parametri dello scenario.
| Input | nessuno |
| Output | value — un oggetto unico { name: value, … } |
| Configurazione | name (il nome del parametro), valueType (il suo tipo e il suo valore predefinito) |
I valori vengono forniti al lancio, con --param name=value dalla riga di
comando, oppure richiesti in modo interattivo se l’esecuzione raggiunge il
riquadro senza un valore disponibile.
Input «baseUrl» (stringa) ──► porta env della richiestaOutput / Return (uscita / ritorno)
Section titled “Output / Return (uscita / ritorno)”Espone un risultato al chiamante dello scenario.
| Input | value |
| Output | nessuno — è un pozzo: né error, né done |
| Configurazione | name |
Uno scenario chiamato da un’azione Esegui lo scenario rende ciascuna delle
sue uscite disponibile sulla porta output:<name> del chiamante.
If (se)
Section titled “If (se)”Diramazione a due vie.
| Input | left, right |
| Output | then, else |
| Configurazione | operator: lt, lte, eq, gte, gt, ne, contains — più left e right come valori letterali |
Suggerimento: se nessun operando è cablato né compilato, il riquadro verifica
semplicemente la veridicità del segnale ricevuto su in. È il «se siamo arrivati
fin qui» senza condizione esplicita.
Switch (smistamento)
Section titled “Switch (smistamento)”Diramazione a N vie.
| Input | on |
| Output | una porta case-<id> per ogni caso dichiarato, più default |
| Configurazione | cases: un elenco di { id, value } |
Preferibile a una cascata di If appena ci sono più di due esiti: ogni caso è un filo distinto, visivamente leggibile.
Retry (riprova)
Section titled “Retry (riprova)”Frontiera di ripresa su errore.
| Input | maxAttempts, delay |
| Output | attempt (ogni tentativo), exhausted (tentativi esauriti) |
| Configurazione | si veda più sotto |
| Campo | Predefinito | Ruolo |
|---|---|---|
maxAttempts | 3 | Numero massimo di tentativi |
backoff | fixed | fixed, linear o exponential |
delay + delayUnit | — | Ritardo di base (ms, s, min) |
factor | 2 | Fattore di crescita in modalità esponenziale |
maxDelay + maxDelayUnit | — | Limite massimo del ritardo |
retryOnError | true | Riprovare in caso di errore |
retryOnFailure | false | Riprovare in caso di fallimento applicativo |
retryOnStatus | — | Elenco di stati HTTP, per esempio [429, 503] |
Il sottografo collegato a attempt costituisce l’ambito ritentato. In caso di
successo, l’uscita avviene tramite done. Questo riquadro non ha porta
error: è esso stesso la frontiera.
Riprova (3, esponenziale, [429,503]) ├─ attempt ──► Richiesta HTTP ──► Assert └─ exhausted ──► Throw «servizio non disponibile»