Aller au contenu

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.

Déclare les paramètres du scénario.

Entréesaucune
Sortiesvalue — un objet unique { nom: valeur, … }
Configurationname (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ête

Expose un résultat à l’appelant du scénario.

Entréesvalue
Sortiesaucune — c’est un puits : ni error, ni done
Configurationname

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.

Branchement à deux voies.

Entréesleft, right
Sortiesthen, else
Configurationoperator : 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.

Branchement à N voies.

Entréeson
Sortiesun port case-<id> par cas déclaré, plus default
Configurationcases : 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.

Frontière de reprise sur erreur.

EntréesmaxAttempts, delay
Sortiesattempt (chaque tentative), exhausted (tentatives épuisées)
Configurationvoir ci-dessous
ChampDéfautRôle
maxAttempts3Nombre maximum de tentatives
backofffixedfixed, linear ou exponential
delay + delayUnitDélai de base (ms, s, min)
factor2Facteur de croissance en mode exponentiel
maxDelay + maxDelayUnitPlafond du délai
retryOnErrortrueRéessayer sur une erreur
retryOnFailurefalseRéessayer sur un échec métier
retryOnStatusListe 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 »