Tous les produits
Search
Centre de documentation

CloudFlow:Choice

Dernière mise à jour :Aug 11, 2026

Un état Choice ajoute une branche conditionnelle à un flux. Il évalue les conditions par rapport aux données d'entrée et dirige l'exécution vers la première branche correspondante, comme une instruction switch-case en programmation.

Fonctionnement

Lorsqu'un flux atteint un état Choice, le système évalue la condition de chaque branche dans l'ordre :

  1. Si une condition est évaluée à true, le flux passe à l'état indiqué dans le champ Next de cette branche.

  2. Si aucune condition n'est évaluée à true, le flux passe à l'état indiqué dans le champ Default.

Le champ Default est obligatoire. Cela garantit que le flux dispose toujours d'un chemin de transition valide, même si aucune condition de branche ne correspond.

Important

Les états Choice ne prennent pas en charge les attributs End et Next au niveau de l'état. Utilisez l'attribut Default pour définir la transition de secours. Chaque ChoiceBranch définit son propre attribut Next afin d'indiquer la destination du flux lorsque la condition est remplie.

Attributs

Attribut

Type

Obligatoire

Description

Exemple

Name

string

Oui

Nom de l'état.

my state

Description

string

Non

Description de l'état.

describe it here

Type

string

Oui

Type d'état. Définissez la valeur sur Choice.

Choice

InputConstructor

map[string]any

Non

Constructeur d'entrée. Pour plus d'informations, consultez la section Entrées et sorties.

--

Default

string

Oui

État de secours vers lequel passer lorsqu'aucune condition de branche n'est évaluée à true.

my next task

Branches

ChoiceBranch[]

Oui

Tableau de branches de choix. Consultez le tableau ChoiceBranch.

--

ChoiceBranch

Chaque entrée du tableau Branches contient les attributs suivants :

Attribut

Type

Obligatoire

Description

Exemple

Condition

string

Oui

Expression conditionnelle évaluée à true ou false. Consultez la section Expressions conditionnelles.

$Input.status=="ready"

Next

string

Oui

État vers lequel passer lorsque la condition est évaluée à true.

my next task

Exemple

Le flux suivant dirige l'exécution en fonction de la valeur de $Input.data :

  • Si $Input.data est égal à "ready", le flux passe à l'état Pass1.

  • Sinon, le flux passe à l'état par défaut Pass2.

Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: Choice
States:
  - Type: Choice
    Name: Choice
    Branches:
      - Condition: $Input.data == "ready"
        Next: Pass1
    Default: Pass2
  - Type: Pass
    Name: Pass2
    End: true
  - Type: Pass
    Name: Pass1
    End: true

Expressions conditionnelles

Les expressions conditionnelles combinent des variables, des constantes et des opérateurs pour produire un résultat booléen (true ou false). Utilisez la variable $Input pour référencer les données d'entrée de l'état et la variable $Context pour référencer les données de contexte du flux. Pour plus d'informations, consultez la section Transmission des données.

Opérateurs pris en charge

Catégorie

Opérateurs

Types applicables

Comparaison

==, !=, >, >=, <, <=

Chaînes, nombres

Logique

&& (ET), `

` (OU)

Expressions booléennes

Préfixe

! (NON), - (négation)

Expressions booléennes, nombres

Inclusion

in

Tableaux (vérifie si une valeur existe), objets (vérifie si une clé existe)

Constantes prises en charge

Type

Syntaxe

Exemples

Chaîne

Guillemets doubles (") ou accents graves ()

"foobar", foobar

Numérique

Entier ou décimal

1, 12.5

Booléen

Mots-clés en minuscules

true, false

Exemples d'expressions

À partir des données $Input suivantes, les tableaux ci-dessous montrent comment différentes expressions sont évaluées :

{
  "a": 1,
  "b": {
    "b1": true,
    "b2": "ready"
  },
  "c": [1, 2, 3],
  "d": 1,
  "e": 1,
  "f": {
    "f1": false,
    "f2": "inprogress"
  }
}

Comparaisons numériques

Expression

Résultat

Description

$Input.a==1

true

Égal à une valeur littérale

$Input.a==2

false

Différent de la valeur littérale

$Input.a>0

true

Supérieur à

0<$Input.a

true

Littéral placé à gauche

$Input.a>=1

true

Supérieur ou égal à

$Input.a!=2

true

Différent de

Comparaisons booléennes

Expression

Résultat

Description

$Input.b.b1

true

Référence booléenne directe

$Input.b.b1==true

true

Comparaison explicite avec true

$Input.b.b1==false

false

Comparaison explicite avec false

Comparaisons de chaînes

Expression

Résultat

Description

$Input.b.b2=="ready"

true

Égalité de chaînes

$Input.b.b2=="inprogress"

false

Inégalité de chaînes

Expressions composées

Expression

Résultat

Description

$Input.a==1 && $Input.b.b1

true

Les deux conditions sont vraies

$Input.a==2 && $Input.b.b1

false

La première condition est fausse

Comparaisons entre tableaux et variables

Expression

Résultat

Description

$Input.c[0]==1

true

Accès à un élément de tableau par index

$Input.c[0]==$Input.a

true

Comparaison de deux variables

Vérifications d'inclusion

Expression

Résultat

Description

"f1" in $Input.f

true

La clé existe dans l'objet

"f3" in $Input.f

false

La clé n'existe pas

1 in $Input.c

true

La valeur existe dans le tableau