Todos os produtos
Search
Central de documentação

CloudFlow:Choice

Última atualização: Jun 28, 2026

Um estado Choice adiciona ramificações condicionais a um fluxo. Ele avalia condições com base nos dados de entrada e direciona a execução para a primeira ramificação correspondente, de forma semelhante a uma instrução switch-case em programação.

Funcionamento

Quando um fluxo atinge um estado Choice, o sistema avalia a condição de cada ramificação sequencialmente:

  1. Se uma condição for avaliada como true, o fluxo transita para o estado especificado no campo Next dessa ramificação.

  2. Caso nenhuma condição resulte em true, o fluxo segue para o estado definido no campo Default.

O campo Default é obrigatório. Isso garante que o fluxo sempre tenha um caminho de transição válido, mesmo quando nenhuma condição de ramificação for atendida.

Importante

Estados Choice não suportam os atributos End e Next no nível do estado. Utilize o atributo Default para definir a transição de fallback. Cada ChoiceBranch define seu próprio atributo Next para indicar o destino do fluxo quando a condição é satisfeita.

Atributos

Atributo

Tipo

Obrigatório

Descrição

Exemplo

Name

string

Sim

Nome do estado.

my state

Description

string

Não

Descrição do estado.

describe it here

Type

string

Sim

Tipo do estado. Defina como Choice.

Choice

InputConstructor

map[string]any

Não

Construtor de entrada. Para mais informações, consulte Entradas e saídas.

--

Default

string

Sim

Estado de fallback para o qual o fluxo transita quando nenhuma condição de ramificação é avaliada como true.

my next task

Branches

ChoiceBranch[]

Sim

Array de ramificações de escolha. Consulte a tabela ChoiceBranch.

--

ChoiceBranch

Cada entrada no array Branches contém os seguintes atributos:

Atributo

Tipo

Obrigatório

Descrição

Exemplo

Condition

string

Sim

Expressão condicional que resulta em true ou false. Consulte Expressões condicionais.

$Input.status=="ready"

Next

string

Sim

Estado de destino da transição quando a condição é avaliada como true.

my next task

Exemplo

O fluxo a seguir direciona a execução com base no valor de $Input.data:

  • Se $Input.data for igual a "ready", o fluxo transita para o estado Pass1.

  • Caso contrário, o fluxo segue para o estado padrão 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

Expressões condicionais

Expressões condicionais combinam variáveis, constantes e operadores para produzir um resultado booleano (true ou false). Use a variável $Input para referenciar os dados de entrada do estado e a variável $Context para acessar os dados de contexto do fluxo. Para mais detalhes, consulte Passagem de dados.

Operadores suportados

Categoria

Operadores

Tipos aplicáveis

Comparação

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

Strings, números

Lógicos

&& (AND), `

` (OR)

Expressões booleanas

Prefixo

! (NOT), - (negação)

Expressões booleanas, números

Inclusão

in

Arrays (verifica se um valor existe), objetos (verifica se uma chave existe)

Constantes suportadas

Tipo

Sintaxe

Exemplos

String

Aspas duplas (") ou crases ()

"foobar", foobar

Numérico

Inteiro ou decimal

1, 12.5

Booleano

Palavras-chave em minúsculas

true, false

Exemplos de expressões

Considerando os seguintes dados de $Input, as tabelas abaixo demonstram como diferentes expressões são avaliadas:

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

Comparações numéricas

Expressão

Resultado

Descrição

$Input.a==1

true

Igualdade com um valor literal

$Input.a==2

false

Diferença em relação ao valor literal

$Input.a>0

true

Maior que

0<$Input.a

true

Literal no lado esquerdo

$Input.a>=1

true

Maior ou igual a

$Input.a!=2

true

Diferente de

Comparações booleanas

Expressão

Resultado

Descrição

$Input.b.b1

true

Referência booleana direta

$Input.b.b1==true

true

Comparação explícita com true

$Input.b.b1==false

false

Comparação explícita com false

Comparações de strings

Expressão

Resultado

Descrição

$Input.b.b2=="ready"

true

Igualdade de strings

$Input.b.b2=="inprogress"

false

Desigualdade de strings

Expressões compostas

Expressão

Resultado

Descrição

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

true

Ambas as condições são verdadeiras

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

false

A primeira condição é falsa

Comparações de arrays e entre variáveis

Expressão

Resultado

Descrição

$Input.c[0]==1

true

Acesso a elemento de array por índice

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

true

Comparação entre duas variáveis

Verificações de inclusão

Expressão

Resultado

Descrição

"f1" in $Input.f

true

A chave existe no objeto

"f3" in $Input.f

false

A chave não existe

1 in $Input.c

true

O valor existe no array