Set Body

El EIP Set Body define o modifica el cuerpo del mensaje.

Parámetros

Parámetro Descripción Valor por defecto Tipo

Expression

Define el valor que se configurará en el cuerpo del mensaje (body).

ExpressionDefinition

Expression

La expression permite calcular o definir valores dinámicamente durante el procesamiento de mensajes en el flujo de integración. Es una forma de configurar comportamientos que pueden variar según el contexto del mensaje en tránsito.

La expresión está organizada en dos niveles jerárquicos que permiten que la estructura sea más extensible y adaptable a diferentes contextos:

  • Primer nivel: especifica el tipo de lógica que se aplicará (constant, jsonPath, xPath, etc.).

  • Segundo nivel: define el valor efectivo de la expresión, es decir, el dato que será asignado al cuerpo del mensaje.

Tipos comunes de expressions

  • constant: define un valor fijo, útil para mensajes estáticos. Por ejemplo, puede definir el cuerpo del mensaje como el JSON estático {"status": "error"}.

- setBody:
    expression:
      constant:
        expression: '{"status": "error"}'
  • jsonpath: extrae datos del cuerpo del mensaje cuando está en formato JSON. Por ejemplo, puede extraer el valor ubicado en $.data.attributes del JSON en el cuerpo del mensaje.

- setBody:
    expression:
      jsonpath:
        path: '$.data.attributes'
  • xpath: extrae información cuando el cuerpo del mensaje está en formato XML. Por ejemplo, selecciona el nodo XML correspondiente a /response/body/item del cuerpo del mensaje.

- setBody:
    expression:
      xpath:
        path: '/response/body/item'
  • script: permite usar lenguajes de script (JavaScript, Groovy, etc.) para crear un cuerpo dinámico. Por ejemplo, puede ejecutar un script en JavaScript para generar dinámicamente el cuerpo del mensaje.

- setBody:
    expression:
      script:
        language: 'javascript'
        expression: 'return {"status": "ok"};'
  • binary: define un cuerpo binario, útil para enviar archivos o datos no textuales. Por ejemplo, configura el cuerpo del mensaje como datos codificados en Base64.

- setBody:
    expression:
      binary:
        content: 'base64encodedData'

Ejemplo

- setBody:
    id: setBody-2360
    expression:
      simple:
        expression: "<request><id>${header.id}</id></request>"
  • El código define el cuerpo del mensaje como un XML dinámico que contiene un elemento <id>.

  • El parámetro expression utiliza el lenguaje simple, que permite insertar valores dinámicos y realizar manipulaciones sencillas de cadenas.

  • La expresión ${header.id} inserta en el XML el valor del encabezado (header) llamado "id".

  • Si el encabezado "id" tiene el valor 123, el cuerpo del mensaje sería configurado así:

    <request><id>123</id></request>
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]