Contrôle
Cinq boîtes pilotent le flux d’exécution d’un scénario.
Rappel : toute boîte possède aussi les ports implicites in, error et
done — voir Ports et liaisons.
Input / Param (entrée / paramètre)
Section titled “Input / Param (entrée / paramètre)”Déclare les paramètres du scénario.
| Entrées | aucune |
| Sorties | value — un objet unique { nom: valeur, … } |
| Configuration | name (le nom du paramètre), valueType (son type et sa valeur par défaut) |
Les valeurs sont fournies au lancement, par --param nom=valeur en ligne de
commande, ou demandées interactivement si l’exécution atteint la boîte sans
valeur disponible.
Entrée « baseUrl » (chaîne) ──► port env de la requêteOutput / Return (sortie / retour)
Section titled “Output / Return (sortie / retour)”Expose un résultat à l’appelant du scénario.
| Entrées | value |
| Sorties | aucune — c’est un puits : ni error, ni done |
| Configuration | name |
Un scénario appelé par une action Exécuter le scénario rend chacune de ses
sorties disponible sur le port output:<nom> de l’appelant.
If (si)
Section titled “If (si)”Branchement à deux voies.
| Entrées | left, right |
| Sorties | then, else |
| Configuration | operator : lt, lte, eq, gte, gt, ne, contains — plus left et right en valeurs littérales |
Astuce : si aucun opérande n’est câblé ni renseigné, la boîte teste
simplement la véracité du signal reçu sur in. C’est le « si on est arrivé
jusqu’ici » sans condition explicite.
Switch (aiguillage)
Section titled “Switch (aiguillage)”Branchement à N voies.
| Entrées | on |
| Sorties | un port case-<id> par cas déclaré, plus default |
| Configuration | cases : une liste de { id, value } |
Préférable à une cascade de If dès qu’il y a plus de deux issues : chaque cas est un fil distinct, visuellement lisible.
Retry (réessayer)
Section titled “Retry (réessayer)”Frontière de reprise sur erreur.
| Entrées | maxAttempts, delay |
| Sorties | attempt (chaque tentative), exhausted (tentatives épuisées) |
| Configuration | voir ci-dessous |
| Champ | Défaut | Rôle |
|---|---|---|
maxAttempts | 3 | Nombre maximum de tentatives |
backoff | fixed | fixed, linear ou exponential |
delay + delayUnit | — | Délai de base (ms, s, min) |
factor | 2 | Facteur de croissance en mode exponentiel |
maxDelay + maxDelayUnit | — | Plafond du délai |
retryOnError | true | Réessayer sur une erreur |
retryOnFailure | false | Réessayer sur un échec métier |
retryOnStatus | — | Liste de statuts HTTP, par exemple [429, 503] |
Le sous-graphe branché sur attempt constitue la portée réessayée. En cas de
succès, la sortie se fait par done. Cette boîte n’a pas de port error :
c’est elle la frontière.
Réessayer (3, exponentiel, [429,503]) ├─ attempt ──► Requête HTTP ──► Assert └─ exhausted ──► Throw « service indisponible »