Todos os produtos
Search
Central de documentação

CloudFlow:Map state: inline mode

Última atualização: Jun 28, 2026

Quando um workflow precisa aplicar a mesma lógica de processamento a todos os elementos de um array — como validar um lote de pedidos, redimensionar um conjunto de imagens ou enriquecer uma lista de registros — o estado Map executa essa tarefa iterando sobre o array e processando cada elemento por meio de um subfluxo em paralelo. Esse comportamento assemelha-se a um loop foreach com execução concorrente. Por padrão, os estados Map operam no modo inline. Esse modo concentra-se em um único nó e é ideal para cenários em que cada elemento de uma coleção exige processamento individual.

Funcionamento

  1. Extraia um array da entrada usando a expressão ItemsPath.

  2. Inicie um subfluxo independente para cada elemento e execute os estados definidos em Processor.

  3. Execute todos os subfluxos em paralelo, respeitando o limite de MaxConcuccency.

  4. Após a conclusão de todos os subfluxos, combine os resultados em uma saída do tipo map[string]any sob a chave Items.

Referência de campos

Campo

Tipo

Obrigatório

Descrição

Name

string

Sim

Nome do estado.

Type

string

Sim

Deve ser Map.

ItemsPath

string

Sim

Expressão que extrai o array alvo da entrada. Aceita as variáveis $Input e $Context. Consulte ItemsPath.

Processor

Processor

Sim

Definição do subfluxo executado para cada elemento do array. Veja Processor.

InputConstructor

map[string]any

Não

Constrói ou reestrutura a entrada antes da iteração. Consulte Entradas e saídas.

OutputConstructor

map[string]any

Não

Reestrutura a saída combinada após a conclusão de todos os subfluxos. Consulte OutputConstructor do estado.

MaxConcuccency

int

Não

Número máximo de subfluxos paralelos. O limite superior é 40. Consulte MaxConcuccency.

Next

string

Não

Estado para o qual transitar após a conclusão. Desnecessário se End for true.

End

bool

Não

Indica que este é o estado terminal do escopo atual.

Retry

Retry

Não

Política de nova tentativa em caso de erro. Consulte Tratamento de erros.

Catch

Catch

Não

Política de captura de erros. Consulte Tratamento de erros.

Description

string

Não

Descrição do estado.

Campos principais

ItemsPath

Expressão que extrai um array da entrada. Se a expressão retornar um array JSON, o estado Map itera sobre cada elemento e o encaminha independentemente ao Processor.

Aceita as variáveis de expressão $Input e $Context:

$Input.FieldA

O exemplo acima extrai o array FieldA da entrada. Em seguida, cada elemento é processado em um subfluxo paralelo separado.

Processor

Defina o subfluxo executado para cada elemento do array.

Campo

Tipo

Obrigatório

Descrição

StartAt

string

Sim

Primeiro estado a ser executado no subfluxo.

States

array

Sim

Estados que compõem o subfluxo.

Exemplo:

Processor:
  StartAt: Pass1
  States:
    - Type: Pass
      Name: Pass1
      End: true

MaxConcuccency

Número máximo de subfluxos executados simultaneamente. O limite superior é 40.

Exemplo

O fluxo abaixo define um estado Map que itera sobre um array de três elementos. Cada elemento passa por um único estado Pass.

Type: StateMachine
Name: my-wkfl
SpecVersion: v1
StartAt: Map1
States:
  - Type: Map
    Name: Map1
    End: true
    InputConstructor:
      FieldA:
        - a: b
        - c: d
        - e: f
    ItemsPath: $Input.FieldA
    Processor:
      StartAt: Pass1
      States:
        - Type: Pass
          Name: Pass1
          End: true

Entrada

O campo InputConstructor gera a seguinte entrada:

{
  "FieldA": [
    { "a": "b" },
    { "c": "d" },
    { "e": "f" }
  ]
}

Dados recebidos em cada iteração

A expressão ItemsPath extrai o array FieldA. Cada subfluxo recebe um elemento como entrada. A primeira iteração, por exemplo, recebe:

{
  "a": "b"
}

A segunda iteração recebe { "c": "d" } e a terceira recebe { "e": "f" }. Os três subfluxos são executados em paralelo.

Saída

Após a conclusão de todos os subfluxos, o estado Map combina os resultados sob a chave Items:

{
  "Items": [
    { "a": "b" },
    { "c": "d" },
    { "e": "f" }
  ]
}

Para reestruturar essa saída combinada, use o OutputConstructor.