Todos los productos
Search
Centro de documentos

CloudFlow:Estado Map: modo inline

Última actualización: Sep 05, 2026

Cuando un flujo de trabajo necesita aplicar la misma lógica de procesamiento a cada elemento de un arreglo (como validar un lote de pedidos, redimensionar un conjunto de imágenes o enriquecer una lista de registros), el estado Map itera sobre el arreglo y ejecuta cada elemento mediante un subflujo en paralelo. Este comportamiento es similar a un bucle foreach con ejecución concurrente. Los estados Map se ejecutan en modo inline de forma predeterminada. El modo inline se centra en un solo nodo y resulta adecuado para escenarios en los que cada elemento de una colección requiere procesamiento.

Funcionamiento

  1. Extraiga un arreglo de la entrada mediante la expresión ItemsPath.

  2. Inicie un subflujo independiente para cada elemento y ejecute los estados definidos en Processor.

  3. Ejecute todos los subflujos en paralelo hasta alcanzar el límite de MaxConcuccency.

  4. Una vez completados todos los subflujos, combine los resultados en una salida de tipo map[string]any bajo la clave Items.

Referencia de campos

Campo

Tipo

Obligatorio

Descripción

Name

string

Sí

Nombre del estado.

Type

string

Sí

Debe ser Map.

ItemsPath

string

Sí

Expresión que extrae el arreglo objetivo de la entrada. Admite las variables $Input y $Context. Consulte ItemsPath.

Processor

Processor

Sí

Definición del subflujo que se ejecuta para cada elemento del arreglo. Consulte Processor.

InputConstructor

map[string]any

No

Construye o transforma la entrada antes de la iteración. Consulte Inputs and outputs.

OutputConstructor

map[string]any

No

Transforma la salida combinada después de completar todos los subflujos. Consulte State OutputConstructor.

MaxConcuccency

int

No

Número máximo de subflujos paralelos. El límite superior es 40. Consulte MaxConcuccency.

Next

string

No

Estado al que se transita tras la finalización. No es obligatorio si End es true.

End

bool

No

Marca este estado como el estado terminal del ámbito actual.

Retry

Retry

No

Política de reintentos ante errores. Consulte Error handling.

Catch

Catch

No

Política de captura de errores. Consulte Error handling.

Description

string

No

Descripción del estado.

Campos clave

ItemsPath

Expresión que extrae un arreglo de la entrada. Si la expresión devuelve un arreglo JSON, el estado Map itera sobre cada elemento y lo pasa al Processor de forma independiente.

Admite las variables de expresión $Input y $Context:

$Input.FieldA

Esta instrucción extrae el arreglo FieldA de la entrada. Posteriormente, cada elemento se procesa en un subflujo paralelo independiente.

Processor

Define el subflujo que se ejecuta para cada elemento del arreglo.

Campo

Tipo

Obligatorio

Descripción

StartAt

string

Sí

Primer estado que se ejecuta en el subflujo.

States

array

Sí

Estados que componen el subflujo.

Ejemplo:

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

MaxConcuccency

Número máximo de subflujos que se ejecutan en paralelo. El límite superior es 40.

Ejemplo

El siguiente flujo define un estado Map que itera sobre un arreglo de tres elementos. Cada elemento pasa por un ú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

InputConstructor genera la siguiente entrada:

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

Datos recibidos en cada iteración

ItemsPath extrae el arreglo FieldA. Cada subflujo recibe un elemento como entrada. Por ejemplo, la primera iteración recibe:

{
  "a": "b"
}

La segunda iteración recibe { "c": "d" } y la tercera recibe { "e": "f" }. Los tres subflujos se ejecutan en paralelo.

Salida

Después de completar todos los subflujos, el estado Map combina los resultados bajo la clave Items:

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

Para transformar esta salida combinada, utilice OutputConstructor.