Todos os produtos
Search
Central de documentação

CloudFlow:Etapas de escolha

Última atualização: Jun 28, 2026

Este tópico descreve os conceitos básicos e exemplos de etapas de escolha, além das expressões condicionais relacionadas.

Parâmetros

As etapas de escolha permitem executar diferentes etapas em um workflow com base em condições, de forma semelhante ao switch-case em linguagens de programação. Uma etapa de escolha contém múltiplas opções e um padrão. Cada opção inclui uma expressão condicional, várias etapas e instruções goto. O padrão contém apenas etapas e instruções goto. Quando o workflow avança para uma etapa de escolha, o sistema avalia se as expressões condicionais retornam True na sequência definida.

  • Se o retorno for True, o sistema executa as etapas e, em seguida, as instruções goto definidas na opção correspondente.

  • Caso nenhuma opção retorne True, o sistema executa as etapas e instruções goto definidas no padrão.

  • Se não houver um padrão definido, a etapa de escolha é encerrada.

Uma etapa de escolha contém os seguintes atributos:

  • type: Obrigatório. Tipo da etapa. O valor choice especifica uma etapa de escolha.

  • name: Obrigatório. Nome da etapa.

  • choices: Obrigatório. Múltiplas opções do tipo array. Cada elemento corresponde a uma opção.

    • condition: Obrigatório. Expressão condicional. Expressões condicionais referenciam entradas de etapa com base em JSONPath ($.key).

    • steps: Opcional. Múltiplas etapas seriais definidas para uma opção.

    • goto: Opcional. Nome da etapa de destino, que deve estar no mesmo nível da etapa de escolha.

  • default: Obrigatório. Padrão.

    • steps: Opcional. Múltiplas etapas seriais definidas para o padrão.

    • goto: Opcional. Nome da etapa de destino, que deve estar no mesmo nível da etapa de escolha atual.

  • end: Opcional. Especifica se o fluxo deve prosseguir para as etapas subsequentes após o término da etapa atual.

  • inputMappings: Opcional. Mapeamentos de entrada.

  • outputMappings: Opcional. Mapeamentos de saída. O $local desta etapa indica o resultado da execução da ramificação de escolha.

    Nota

    Se nenhum mapeamento de saída for especificado, $local será usado como saída desta etapa por padrão.

Exemplos

O workflow de exemplo a seguir define uma etapa de escolha.

  • Se o valor de status na entrada for ready, as etapas pass1, pass3 e final da primeira opção são executadas em sequência.

  • Quando o valor de status na entrada for failed, as instruções goto da segunda opção são executadas, a etapa de escolha termina e a etapa final é acionada.

  • Para valores de status na entrada que não sejam nem ready nem failed, o padrão é executado. Ou seja, as etapas pass2 e final são processadas.

version: v1
type: flow
steps:
  - type: choice
    name: mychoice
    choices:
      - condition: $.status == "ready"
        # choice with steps
        steps:
          - type: pass
            name: pass1
      - condition: $.status == "failed"
        # choice with goto
        goto: final
    default:
      # choice with both steps and goto
      steps:
        - type: pass
          name: pass2
      goto: final
  - type: pass
    name: pass3
  - type: pass
    name: final            

Expressões condicionais

Uma expressão condicional consiste nas seguintes operações e variáveis:

  • Operações de comparação: >>=<<===!=. Aplicáveis a strings e números.

  • Operações lógicas: ||&&.

  • Constantes de string: Devem estar entre aspas duplas (") ou acentos graves (). Exemplos: "foobar" ou foobar`.

  • Constantes numéricas: 112.5.

  • Constante booleana: true ou false.

  • Prefixo: !-.

  • Contenção: in, utilizado para verificar se um array contém um valor ou se um objeto contém uma chave específica.

O exemplo a seguir mostra os resultados da execução de etapas para diferentes expressões condicionais.

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

Expressão condicional

Resultado

$.a==1

true

$.a==2

false

$.a>0

true

0<$.a

true

$.a>=1

true

$.a!=2

true

$.b.b1

true

$.b.b1==true

true

$.b.b1==false

false

$.b.b2=="ready"

true

$.b.b2==

true

$.b.b2=="inprogress"

false

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

true

`$.a==1

$.b.b1`

true

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

false

`$.a==2

$.b.b1`

true

$.c[0]==1

true

$.c[0]==$.a

true